2009-10-02 135 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', 
     ) 
); 

现在,我,我需要使用foreach循环来列举我的数组内容的前提下进行操作。

这是我目前试图实现的功能,但它一直返回一个错误,指出我的参数无效。

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在哪里定义?不应该将它们传递给你的函数吗? Wow; – dnagirl 2009-10-02 13:57:02

+0

哇;在发布此消息后大约45秒回答了我自己的问题。 我没有将数组$ sitemap传递给GenerateMenu。该数组不在函数的范围内,所以没有数组$ sitemap来遍历。 – 2009-10-02 13:57:18

回答

3

您忘记指定/传递$page$sitemap。这些变量来自哪里?

尝试将它传递给你的函数:

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

然后,你可以这样调用:

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

GenerateMenu()需要发送的值$page$sitemap功能或者它不”不知道该怎么做。