Php 如何枚举多维关联数组?
我会第一个承认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',
// 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。