2009-10-02 2 views
0

Я буду первым, кто признает, что PHP не является моей сильной стороной, и этот массив начинает водить меня орехами.Как перечислить многомерный ассоциативный массив?

Это массив, который я пытаюсь перечислить:

// array containing the site menu 
$sitemap = array(
    array('Title' => 'menu01', 
     'Description' => 'menu01_description', 
     'Address' => 'http://localhost/site.php?page=menu01', 
     ), 
    array('Title' => 'menu02', 
     'Description' => 'menu02_description', 
     'Address' => 'http://localhost/site.php?page=menu02', 
     ), 
    array('Title' => 'menu03', 
     'Description' => 'menu03_description', 
     'Address' => 'http://localhost/site.php?page=menu03', 
     ) 
); 

Сейчас я работает в предположении, что мне нужно использовать цикл Еогеасп перечислить содержимое моего массива.

Это функция, которую я сейчас пытаюсь реализовать, но она продолжает возвращать ошибку, заявляя, что мои аргументы недействительны.

function GenerateMenu(){ 
    $output = "<ul>"; 

    foreach ($sitemap as $menuitem => $value){ 
     if ($page == $value["Title"]){ 
      $output .= '<li class="active">'; 
     } 
     else { 
      $output .= '<li>'; 
     } 

     $output .= '<a href="' . $value['Address'] . '">' . $value['Description'] . '</a><li>'; 
    } 

    $output .= "</ul>"; 
    return $output; 
} 

Почему мои аргументы недействительны? Какой лучший способ распечатать мой массив?

+3

Где определены $ page и $ sitemap? Разве они не должны быть переданы вашей функции? – dnagirl

+0

Wow; ответил на мой вопрос около 45 секунд после публикации этого. Я не передавал массив $ sitemap в GenerateMenu. Массив не входит в объем функции, поэтому не было массива $ sitemap для итерации. –

ответ

3

Вы забыли указать/пройти $page и $sitemap. Откуда берутся эти переменные?

Попробуйте передать его в функцию:

function GenerateMenu($sitemap, $page) { 
    // … 
} 

Тогда вы можете назвать это так:

$sitemap = array(
    // … 
); 
$page = 'menu01' 
echo GenerateMenu($sitemap, $page); 
0

Функция GenerateMenu() необходимо отправить значение для $page и $sitemap или Безразлично» я знаю, что делать.

Смежные вопросы