2012-10-18 3 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 ; 
     } 
    } 
} 

을하지만지고있어 모두가 처음이다 내가 $ set [2] [0] (배열의 값에 키를 할당하기 전에)을 수행하여 직접 액세스 할 수 있기 때문에 foreach 루프의 하위 메뉴에서 항목을 읽는 것이 나에게 이해가되지 않습니다.

내가 원하는 출력을 얻으려면 무엇을해야합니까?

답변

0

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