2014-06-13 28 views
0
Array 
    (
     [0] => stdClass Object 
      (
       [id] => 1 
       [name] => Tops 
       [parent_id] => 
      ) 

     [1] => stdClass Object 
      (
       [id] => 2 
       [name] => Trousers 
       [parent_id] => 
      ) 

     [2] => stdClass Object 
      (
       [id] => 3 
       [name] => Dresses 
       [parent_id] => 
      ) 

     [3] => stdClass Object 
      (
       [id] => 4 
       [name] => Skirts 
       [parent_id] => 
      ) 

     [4] => stdClass Object 
      (
       [id] => 5 
       [name] => Accessories 
       [parent_id] => 
      ) 

     [5] => stdClass Object 
      (
       [id] => 6 
       [name] => Coats & Jackets 
       [parent_id] => 
      ) 

) 

上面是我從數據庫中獲取的父類別。在PHP中使用兩個數組的子菜單創建菜單

及以下的子類別

Array 
(
    [0] => stdClass Object 
     (
      [id] => 8 
      [name] => Mini Tops 
      [parent_id] => 1 
     ) 

    [1] => stdClass Object 
     (
      [id] => 9 
      [name] => Long Tops 
      [parent_id] => 2 
     ) 

    [2] => stdClass Object 
     (
      [id] => 10 
      [name] => Cargo 
      [parent_id] => 2 
     ) 

    [3] => stdClass Object 
     (
      [id] => 11 
      [name] => Bermuda 
      [parent_id] => 2 
     ) 

    [4] => stdClass Object 
     (
      [id] => 12 
      [name] => Formal Dresses 
      [parent_id] => 3 
     ) 

    [5] => stdClass Object 
     (
      [id] => 13 
      [name] => Casual Dresses 
      [parent_id] => 3 
     ) 

    [6] => stdClass Object 
     (
      [id] => 14 
      [name] => Party Wear 
      [parent_id] => 3 
     ) 

    [7] => stdClass Object 
     (
      [id] => 15 
      [name] => Jewelry 
      [parent_id] => 4 
     ) 

    [8] => stdClass Object 
     (
      [id] => 16 
      [name] => Bracelets 
      [parent_id] => 4 
     ) 

    [9] => stdClass Object 
     (
      [id] => 17 
      [name] => Caps 
      [parent_id] => 4 
     ) 

) 
下面

如何:我將我navitaion酒吧

   <ul> 
       <li> 
        <a href="search.html">Tops</a> 
        <ul class="sub-menu"> 
         <li><a href="search.html">Tshirts</a></li> 
         <li><a href="search.html">Jumpers</a></li> 
         <li><a href="search.html">Cardigans</a></li> 
         <li><a href="search.html">Knitwear</a></li> 
        </ul> 
       </li> 
       </ul> 

由於我的邏輯沒有那麼多好,我實際上是試圖讓navitaion這兩個數組以主要鏈接的第一個數組應位於頂部順序,其中所有各自的子數據將出現在各自的parent_id的子菜單中示例

Long Top,貨物和百慕大應該屬於褲子鏈接。

我需要指導我如何才能做到這一點。我試過foreach循環,但在中間

感謝stucked很多

+0

我不確定'中間被卡住'的意思,你能澄清嗎? –

+0

我用於父類別和一個嵌套for循環爲孩子現在我混淆我應該怎麼做..事實上,我不知道我應該如何構造我的數組,以便在查看頁面(codeigniter)時,我可以使菜單與從單個數組子菜單 –

回答

1

如果您在控制是你應該嘗試使用不同的選擇陣列因爲現在你將會做一些不必要的循環。爲了演示:

foreach($categories as $cat) { 
    echo "<li>".$cat->name."<ul>"; 
    foreach($subcategories as $subcat) { 
     if($subcat->parent_id == $cat->id) echo "<li>".$subcat->name."</li>" 
    } 
    echo "</ul></li>"; 
} 

您必須遍歷每個類別的所有子類別。但是,如果您將數據庫中的子類別存儲在索引代表父ID的數組中,則可以輕鬆地檢索它們。

如果你想用一個數組解決這個問題,你可以使子類別列表成爲相應父類別的一個屬性。這將很容易處理和語義。

+0

我不明白,所以你可以引用數組作爲類?我很困惑! – Charles

+0

@Charles這只是一個錯字,修正了它。 –

+0

這是我需要的東西,但問題是,這件事是在我的控制器文件,我不能直接從這裏回聲......我應該通過兩個數組視圖?但在我看來,我可以使用$ subcat-> parent_id? P –