【问题标题】:Accessing different parts of a multidimensional array访问多维数组的不同部分
【发布时间】:2012-10-18 17:37:40
【问题描述】:

我已经使用 md 数组组合了一个菜单,但在正确打印子菜单项时遇到问题。

我用它来构建菜单:

class Language {

public $langCode ;

function __construct($code)
{
    $this->langCode = $code ;
}

public function navigation()
{
    if($this->langCode == 'en')
    {
        $menu = array(
                      array('Home', ''),
                      array('Galleries', '',
                            array('Top ten hottest' => 'hottest.php'),
                            array('Top ten worst' => 'hottest.php'),
                           ),
                      array('Upload', 'upload.php'),
                      array('Login/register', ''),
                      array('Resources', '', 
                            array('News' => ''),
                            array('What\'s a mound?' => ''),
                            array('Legal' => ''),
                            array('Links' => ''),
                           ),
                      array('abc?', ''),
                     ) ;
    }
    return $menu ;
}

}

我正在尝试使用以下方法构建菜单:

$mainMenu = $lng->navigation() ;

echo "<ul>\n" ;
foreach($mainMenu as $set) {
    $x = 0 ;
    echo "<li><a href='".$set[1]."'>".$set[0]."</a></li>\n" ;
    if($set[2])
    {
        foreach($set[2] as $label => $item) {
            echo $item ;
        }
    }
}

但是我得到的只是 foreach 循环的子菜单中的第一项,这对我来说毫无意义,因为我可以通过 $set[2][0] 直接访问它(在我将键分配给数组中的值)。

我需要做什么才能得到我想要的输出?

【问题讨论】:

    标签: php arrays multidimensional-array foreach


    【解决方案1】:

    您忘记将 set[2] 设为数组。现在你已经 set[2] 和 set[3] 以及你已经 set[4] 和 set[5] 的资源:

    $menu = array(
                      array('Home', ''),
                      array('Galleries', '', array(
                            array('Top ten hottest' => 'hottest.php'),
                            array('Top ten worst' => 'hottest.php'),
                           )),
                      array('Upload', 'upload.php'),
                      array('Login/register', ''),
                      array('Resources', '', array(
                            array('News' => ''),
                            array('What\'s a mound?' => ''),
                            array('Legal' => ''),
                            array('Links' => ''),
                           )),
                      array('abc?', ''),
                     ) ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 1970-01-01
      • 2019-06-12
      • 2012-05-29
      • 1970-01-01
      相关资源
      最近更新 更多