2012-10-18 31 views
-1

我已經將使用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]直接訪問它(在我將鍵分配給數組中的值之前)。

我需要做些什麼來獲得我想要的輸出?

回答

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?', ''), 
       ) ;