PHP中数组的多级菜单
我正在尝试从PHP中的数组创建菜单 我想让它更可读,所以我使用了一个数组 我的数组如下所示:PHP中数组的多级菜单,php,arrays,Php,Arrays,我正在尝试从PHP中的数组创建菜单 我想让它更可读,所以我使用了一个数组 我的数组如下所示: $menu = array( 'calendar' => array( 'text' => 'Calendar', 'rights' => 'user' ), 'customers' => array( 'text' => 'Customers', 'rights' => 'user',
$menu = array(
'calendar' => array(
'text' => 'Calendar',
'rights' => 'user'
),
'customers' => array(
'text' => 'Customers',
'rights' => 'user',
'sub' => array(
'create-new' => array(
'text' => 'Create new customer',
'rights' => 'user'
),
'show-customers' => array(
'text' => 'Show all customers',
'rights' => 'user'
)
)
)
);
和PHP来解析数组:
buildMenu($menu);
function buildMenu($menu_array, $is_sub=FALSE) {
$attr = (!$is_sub) ? ' id="menu"' : ' class="submenu"';
$menu = "<ul".$attr.">";
foreach($menu_array as $id => $properties) {
foreach($properties as $key => $val) {
if(is_array($val)) {
$sub = buildMenu($val, TRUE);
}
else {
$sub = NULL;
$$key = $val;
}
}
if(!isset($url)) {
$url = $id;
}
$menu .= "<li><a href=".$url.">".$text."</a>".$sub."</li>";
unset($url, $text, $sub);
}
return $menu . "</ul>";
}
buildMenu($menu);
函数buildMenu($menu\u数组,$is\u sub=FALSE){
$attr=(!$is_sub)“'id=”菜单“:'class=”子菜单“;
$menu=“”;
foreach($id=>$properties的菜单\数组){
foreach($key=>$val的属性){
if(is_数组($val)){
$sub=buildMenu($val,TRUE);
}
否则{
$sub=NULL;
$$key=$val;
}
}
如果(!isset($url)){
$url=$id;
}
$menu.=“”“$sub.” ”;
未设置($url、$text、$sub);
}
返回$menu。“”;
}
我错过什么了吗
它跟我没有任何共鸣
谢谢您的帮助。仅返回将不会提供您需要的输出,或者使用下面的代码,函数内部
echo $menu . "</ul>";
而不是
buildMenu($menu);
使用echo$output=buildMenu($menu);取而代之的是buildMenu($menu);哇,我的菜单在这里。:)为什么?
echo $output = buildMenu($menu);
buildMenu($menu);