我试图用PHP中的数组创建一个菜单。
我想让它更具可读性,所以我使用了一个数组。
我的数组如下:
$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>";
}
我错过了什么吗?
它不会回应我任何事情。
感谢您的帮助。
答案 0 :(得分:0)
只是返回不会提供你需要使用下面的代码,内部函数。
echo $menu . "</ul>";
而不是
return $menu . "</ul>";
如果您返回html输出,请使用以下代码。
echo $output = buildMenu($menu);
而不是
buildMenu($menu);