2009-11-13 49 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

相關問題