Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 访问多维数组的不同部分_Php_Arrays_Multidimensional Array_Foreach - Fatal编程技术网

Php 访问多维数组的不同部分

Php 访问多维数组的不同部分,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,我已经使用md数组组合了一个菜单,但是我在正确打印子菜单项时遇到了问题 我使用它来构建菜单: class Language { public $langCode ; function __construct($code) { $this->langCode = $code ; } public function navigation() { if($this->langCode == 'en') { $menu = array(

我已经使用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 ;
        }
    }
}
$main menu=$lng->navigation();
回声“
    \n”; foreach($main菜单作为$set){ $x=0; 回声“
  • \n”; 如果($set[2]) { foreach($set[2]为$label=>$item){ echo$项目; } } }
但我得到的只是foreach循环子菜单中的第一项,这对我来说毫无意义,因为我可以通过执行$set[2][0]直接访问它(在我为数组中的值指定键之前)


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

您忘记了将set[2]设置为数组。现在您已经设置了[2]和[3],并且在资源上也设置了[4]和[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?', ''),
                 ) ;