Php 如何枚举多维关联数组?

Php 如何枚举多维关联数组?,php,multidimensional-array,Php,Multidimensional Array,我会第一个承认PHP不是我的强项,这个数组开始让我发疯 这是我试图枚举的数组: // array containing the site menu $sitemap = array( array( 'Title' => 'menu01', 'Description' => 'menu01_description', 'Address' => 'http://localhost/site.php?page=menu01',

我会第一个承认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;
}
函数生成器(){
$output=“
    ”; foreach($menuitem=>$value的站点地图){ 如果($page==$value[“Title”]){ $output.='
  • ; } 否则{ $output.='
  • '; } $output.='
  • '; } $output.=“
”; 返回$output; }

为什么我的论点无效?打印阵列的最佳方法是什么?

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

尝试将其传递给您的函数:

function GenerateMenu($sitemap, $page) {
    // …
}
然后你可以这样称呼它:

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

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

尝试将其传递给您的函数:

function GenerateMenu($sitemap, $page) {
    // …
}
然后你可以这样称呼它:

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

函数
GenerateMenu()
需要发送
$page
$sitemap
的值,否则它不知道该做什么

函数
GenerateMenu()
需要发送
$page
$sitemap
的值,否则它不知道该做什么

$page和$sitemap在哪里定义?它们不应该被传递到你的函数中吗;发帖45秒后回答了我自己的问题。我没有将数组$sitemap传递给GenerateMenu。数组不在函数的作用域内,因此没有可迭代的数组$sitemap。在哪里定义了$page和$sitemap?它们不应该被传递到你的函数中吗;发帖45秒后回答了我自己的问题。我没有将数组$sitemap传递给GenerateMenu。该数组不在函数的作用域内,因此没有可迭代的数组$sitemap。