首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混淆了如果是那么复杂的条件

混淆了如果是那么复杂的条件
EN

Stack Overflow用户
提问于 2014-08-29 11:58:34
回答 1查看 62关注 0票数 0

我正在使用数组创建一个菜单。目前,我陷入了困惑的境地:如何向所有的孩子展示菜单上的所有内容。以下是代码:

代码语言:javascript
复制
      <ul class="nav navbar-nav">
<?php
$get_admin_menu = get_admin_menu(); 
$get_admin_submenu = get_admin_submenu(); 
foreach( $get_admin_menu as $menu ){
    $mi = 1;
    $menu_title = $menu["title"];
    $menu_slug = $menu["slug"];
    $menu_url = $menu["url"];

    echo "<li class=\"dropdown\">";
    echo "<a href=\"$menu_url\">";
    echo $menu_title;
    echo "</a>";

    $si = 0;
    $total = count($get_admin_submenu);
    foreach( $get_admin_submenu as $menu ){
        $mi++;
        $submenu_title = $menu["title"];
        $submenu_slug = $menu["slug"];
        $submenu_parent = $menu["parent"];
        if( $menu_url == $submenu_parent ){
            $si++;
            if( $si == 1 ){ echo "<ul class=\"dropdown-menu\" role=\"menu\">"; }
            echo "<li>";
            echo "<a href=\"$submenu_parent?page=$submenu_slug\">";
            echo $submenu_title;
            echo "</a>";
            echo "</li>";
        }
        if( $si == 1 ){ echo "</ul>"; break; }
    }
    echo "</li>";
}
?>
        </ul>

**上述代码呈现**

代码的结果应该是

这是代码,菜单和子菜单是如何被处理到数组中的

代码语言:javascript
复制
    /* Add Administrator Menu */
$add_admin_menu = array();
function add_admin_menu( $args ) {
    global $add_admin_menu;
    return $add_admin_menu[] = $args;
}

/* Get Administrator Menu */
function get_admin_menu(){
    global $add_admin_menu;
    return $add_admin_menu;
}

/* Add Administrator Submenu */
$add_admin_submenu = array();
function add_admin_submenu( $args ) {
    global $add_admin_submenu;
    return $add_admin_submenu[] = $args;
}

/* Get Administrator Submenu */
function get_admin_submenu(){
    global $add_admin_submenu;
    return $add_admin_submenu;
}

function recursive_array_search($needle, $haystack) {
    foreach($haystack as $key => $value){
            $current_key = $key;
            if($needle === $value or (is_array($value) and recursive_array_search($needle,$value) !== false)) {
                    echo $current_key;
            }
    }
}

function searcharray($value, $key, $array) {
   foreach ($array as $k => $val) {
         if ($val[$key] == $value) {
                 return $k;
         }
   }
   return false;
    }

    $args = array(
        "title" => "Dashboard",
        "slug" => "dashboard",
        "url" => "dashboard.php"
    );
    add_admin_menu($args);

    $args = array(
        "title" => "Media",
        "slug" => "media",
        "url" => "media.php"
    );
    add_admin_menu($args);

    $args = array(
        "title" => "Manage Pages",
        "slug" => "pages",
        "url" => "pages.php"
    );
    add_admin_menu($args);

    $args = array(
        "title" => "Plugin",
        "slug" => "plugin",
        "url" => "plugin.php"
    );
    add_admin_menu($args);

    $args = array(
        "title" => "Users",
        "slug" => "users",
        "url" => "users.php"
    );
    add_admin_menu($args);

    $args = array(
        "title" => "Tools",
        "slug" => "tools",
        "url" => "tools.php"
    );
    add_admin_menu($args);

    $args = array(
        "title" => "Settings",
        "slug" => "settings",
        "url" => "settings.php"
    );
    add_admin_menu($args);


    /* Media */
    $args = array(
        "title" => "Media Manager",
        "slug" => "media-manager",
        "parent" => "media.php"
    );
    add_admin_submenu($args);

    $args = array(
        "title" => "Media Settings",
        "slug" => "media-settings",
        "parent" => "media.php"
    );
    add_admin_submenu($args);

    /* Pages */
    $args = array(
        "title" => "View All",
        "slug" => "view-all",
        "parent" => "pages.php"
    );
    add_admin_submenu($args);

    $args = array(
        "title" => "Add New",
        "slug" => "add-new",
        "parent" => "pages.php"
    );
    add_admin_submenu($args);

    $args = array(
        "title" => "Template Manager",
        "slug" => "template",
        "parent" => "pages.php"
    );
    add_admin_submenu($args);

    /* Settings */
    $args = array(
        "title" => "General",
        "slug" => "general",
        "parent" => "settings.php"
    );
    add_admin_submenu($args);

    $args = array(
        "title" => "Mail Server",
        "slug" => "mail-server",
        "parent" => "settings.php"
    );
    add_admin_submenu($args);

    $args = array(
        "title" => "Security",
        "slug" => "security",
        "parent" => "settings.php"
    );
    add_admin_submenu($args);
EN

回答 1

Stack Overflow用户

发布于 2014-08-29 12:04:35

在第一个菜单子元素之后,您就中断了循环。在循环的末尾,您有:

代码语言:javascript
复制
if( $si == 1 ) { echo "</ul>"; break; }

在这里试试这个:

代码语言:javascript
复制
if( $si >= ($total - 1) ) { echo "</ul>"; break; }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25567848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档