如何使用此现有阵列并添加子菜单?

时间:2009-11-13 16:57:08

标签: php arrays menu submenu

现有数组代码:

function get_menu($menu = array(), $ulclass = '', $is_main_menu = false) {
    global $menu_selected;
    $output = '';
    if (empty($menu)) {
        return $output;
    }

    $output .= '<ul' . (!empty($ulclass) ? (' class="' . $ulclass . '"') : '') . '>';
    foreach($menu as $item) {
        if (!$is_main_menu || !isset($item['hide_in_main']) || !$item['hide_in_main']) {
            $li_class = (isset($item['sub']) && !empty($item['href']) ? ('dir') : '');
            if (isset($menu_selected) && !empty($menu_selected) && $menu_selected == $item['href']) {
                $li_class = (!empty($li_class)) ? $li_class . ' selected' : 'selected';
            }
            if (isset($item['li_class']) && !empty($item['li_class'])) {
                $li_class .= (!empty($li_class)) ? ' ' . $item['li_class'] : $item['li_class'];
            }
            $output .= '<li' . (!empty($li_class) ? ' class="' . $li_class . '"': '' ) . '>';
            $output .= '<a';
            if (isset($item['href']) && !empty($item['href'])) {
                $output .= ' href="' . $item['href'] .'"';
            }
            if (isset($item['title']) && !empty($item['title'])) {
                $output .= ' title="' . $item['title'] .'"';
            }
            if (isset($item['class']) && !empty($item['class'])) {
                $output .= ' class="' . $item['class'] .'"';
            }
            if (isset($item['target']) && !empty($item['target'])) {
                $output .= ' target="' . $item['target'] .'"';
            }
            $output .= '>';
            if (isset($item['title']) && !empty($item['title'])) {
                $output .= $item['title'];
            } else if (isset($item['href']) && !empty($item['href'])) {
                $output .= $item['href'];
            }
            $output .= '</a>';
            if (isset($item['sub']) && !empty($item['sub'])) {
                $output .= get_menu($item['sub'], $ulclass);
            }
            $output .= '</li>';
        }
    }
    $output .= '</ul>';
    return $output;
}

现有数组:

$menu[] = array(
    'title' => 'Home',
    'href' => 'index.php'
);
$menu[] = array(
    'title' => 'Summer Activites',
    'href' => 'activities.php'
);
$menu[] = array(
    'title' => 'Winter Activities',
    'href' => 'wactivities.php'
);
$menu[] = array(
    'title' => 'Image Gallery',
    'href' => 'gallery.php'
);

我想添加子菜单

即:夏季活动和冬季活动将是父活动

下的子菜单项

任何帮助都会非常感激 提前谢谢。

2 个答案:

答案 0 :(得分:1)

你真的试过这样做或者你是否懒惰?

实践变得完美!

答案 1 :(得分:1)

$menu[] = array(
   'title' => 'Activities',
   'sub' => array(
        array(
           'title' => 'Summer Activites',
           'href' => 'activities.php' ),
        array(
           'title' => 'Winter Activities',
           'href' => 'wactivities.php')
        )
    )
); 

看起来应该工作。