我正在尝试制作类似WordPress的菜单,但更简单。在WordPress中,您可以从任何PHP脚本中连接管理员侧边栏菜单,这就是我想要做的。
这是包含菜单信息的所有数组
$admin_menu_page = array();
$admin_submenu_page = array();
$admin_menu_page[] = array("Dashboard", "dashboard");
$admin_menu_page[] = array("Pages", "pages");
$admin_menu_page[] = array("Setings", "setings");
$admin_submenu_page['dashboard'] = array("Home", "home");
$admin_submenu_page['dashboard'] = array("Update", "update");
$admin_submenu_page['pages'] = array("Add New Page", "new");
$admin_submenu_page['pages'] = array("All Pages", 'pages');
$admin_submenu_page['setings'] = array("SMTP", "smtp");
$admin_submenu_page['setings'] = array("Theme Options", "theme-options");
这是在页面中呈现该菜单的html部分
echo '<ul>';
foreach($admin_menu_page as $menu){
echo '<li>';
echo '<a href="#">';
echo $menu[0];
echo '<ul>';
foreach($admin_submenu_page[$menu[1]] as $submenu){
echo '<li>';
echo '<a href="#">';
echo $submenu;
echo '</a>';
echo '</li>';
}
echo '</ul>';
echo '</a>';
echo '</li>';
}
echo '</ul>';
这就是上面代码的内容
这就是最终结果应该如何
答案 0 :(得分:1)
首先你需要正确创建子菜单,你缺少括号:
相反:
$admin_submenu_page['dashboard'] = array("Home", "home");
$admin_submenu_page['dashboard'] = array("Update", "update");
$admin_submenu_page['pages'] = array("Add New Page", "new");
$admin_submenu_page['pages'] = array("All Pages", 'pages');
$admin_submenu_page['setings'] = array("SMTP", "smtp");
$admin_submenu_page['setings'] = array("Theme Options", "theme-options");
执行:
$admin_submenu_page['dashboard'][] = array("Home", "home");
$admin_submenu_page['dashboard'][] = array("Update", "update");
$admin_submenu_page['pages'][] = array("Add New Page", "new");
$admin_submenu_page['pages'][] = array("All Pages", 'pages');
$admin_submenu_page['setings'][] = array("SMTP", "smtp");
$admin_submenu_page['setings'][] = array("Theme Options", "theme-options");
第二个渲染,更改:
echo $submenu;
到
echo $submenu[0];
答案 1 :(得分:1)
$main_menu = array() ;
$sub_menu = array() ;
$sub_menu['dashboard'][] = array( "title" => "Home" , "action" => "home" ) ;
$sub_menu['dashboard'][] = array( "title" => "Update" , "action" => "update" ) ;
$main_menu['dashboard']['title'] = 'Dashboard' ;
sort( $sub_menu['dashboard'] ) ;
$main_menu['dashboard']['submenu'] = $sub_menu['dashboard'] ;
$sub_menu['pages'][] = array( "title" => "All Pages" , "action" => "pages" ) ;
$sub_menu['pages'][] = array( "title" => "Add New Page" , "action" => "new" ) ;
$main_menu['pages']['title'] = 'Pages' ;
sort( $sub_menu['pages'] ) ;
$main_menu['pages']['submenu'] = $sub_menu['pages'] ;
$sub_menu['setings'][] = array( "title" => "SMTP" , "action" => "smtp" ) ;
$sub_menu['setings'][] = array( "title" => "Theme Options" , "action" => "theme-options" ) ;
$main_menu['setings']['title'] = 'Setings' ;
sort( $sub_menu['setings'] ) ;
$main_menu['setings']['submenu'] = $sub_menu['setings'] ;
foreach ( $main_menu as $key => $menu ) {
echo '<li>' ;
echo '<a href="#">' ;
echo $menu['title'] ;
echo '<ul>' ;
foreach ( $menu['submenu'] as $item ) {
echo '<li>' ;
echo "<a href=\"#{$item['action']}\">" ;
echo $item['title'] ;
echo '</a>' ;
echo '</li>' ;
}
echo '</ul>' ;
echo '</li>' ;
}
请注意,此解决方案仅适用于子菜单1到1,对于子菜单N到N子菜单,您应该使用递归来优化此脚本:
参见 - &gt; http://www.php.net/manual/pt_BR/regexp.reference.recursive.php