2009-11-13 50 views
0

现有阵列代码:如何取这个现有的数组并添加子菜单?

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' 
); 

我要添加子菜单

即:暑期活动和冬季活动将是下一个父活动子菜单项

任何帮助将如此赞赏 在此先感谢。

回答

1

你真的试过这样做还是你懒惰?

练习完成!

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

看起来它应该工作。

+0

准备告诉他添加一个递归函数调用。不知何故,我错过了它已经在那里。 – 2009-11-13 17:12:58

+0

我认为子是它的一部分,但有一些不太正确的东西(有一个额外的右括号)。我在编码方面没有任何背景,所以我真的很喜欢它。这不是故障,但子项目不显示。我认为这很接近。 并回应蜥蜴,我一直试图弄清楚这一点,但我的领域是印刷设计,我只是这样做,以帮助朋友出去。由于没有编码知识,我正在努力解决它。我已经想出了网站的其他编码,而不是这部分。我非常感谢我能得到的任何帮助。 – Chase 2009-11-14 19:34:15

相关问题