2013-12-09 16 views
1

我有以下「問題」......幾個小時後,我撓我的頭我不知道.. 所以,我們去...我有使用數組的前,而只是一個簡單的數組的風格由主和分區的Multidimencional陣列

$arr = array('1', '2', '3',[...]); 

我能設法對付那種陣列的,只是前幾天我開始學習多維數組的......他們應該叫的,多維的噩夢......任何方式,我有一個由SQL中的「名稱」排序的多維數組...任何方式...該數組需要進行組織,並感謝您在這裏在用戶名爲Edakos在stackoverflow我的數組得到整理主貓與它子貓... 和我的數組看起來是這樣的......

Array 
(
    [10] => stdClass Object 
     (
      [category_id] => 10 
      [category_name] => Main Category 
      [category_parent_id] => 0 
      [category_child_id] => 10 
      [children] => Array 
       (
        [196] => stdClass Object 
         (
          [category_id] => 196 
          [category_name] => Sub Category 1 
          [category_parent_id] => 10 
          [category_child_id] => 196 
          [children] => Array 
           (
           ) 

         ) 
        [198] => stdClass Object 
         (
          [category_id] => 196 
          [category_name] => Sub Category 2 
          [category_parent_id] => 10 
          [category_child_id] => 198 
          [children] => Array 
           (
           ) 

         ) 
    [.....] 
); 

喏,這就是我試圖風格數組...

foreach($tree as $cats => $info){ 
    echo '<span> ID: ' . $cats . '</span><br>'; 
     foreach($info as $k => $v){ 
      echo '<span style="margin-left:10px; color:red;">' . $v ['category_name'] . ' </span><br>'; 
     } 
} 

//的$樹包含完整的數組,它是顯示上述...

而現在的結果是一樣的東西

ID: 10 
1 
M 
0 
1 

ID: 1 
1 
M 
0 
1 

其中ID:是編號爲主體的類別,是確定...和數據是主要的類別,例如是,ID,姓名,父ID,子ID這是主要的類別ID數據...

陣列看起來像這樣

[10] => stdClass Object 
      (
       [category_id] => 10 
       [category_name] => Main Category 
       [category_parent_id] => 0 
       [category_child_id] => 10 
       [children] => Array 
        (.... 

所以我的理解是[ KEY => val,key => val ...和son ...直到包含數組子類的關鍵子...

因此,正如我在我的代碼中寫的:

foreach($info as $k => $v){ 
echo '<span style="margin-left:10px; color:red;">' . $v ['category_name'] . ' </span><br>'; 
      } 

我應該可以得到第一個數組的名稱,這是我的主要類別,在這種情況下,「主要類別」...但相反,我只得到字母M ... ,有我丟失的地方...所以無論如何... ...下面列出的是得到子類別...對於我有這個...

foreach($info as $k => $v){ 
    echo '<span style="margin-left:10px; color:red;">' . $v ['category_name'] . ' </span> 
     foreach ($k[children] as $sk => $sv){ 
    echo '<span style="margin-left:10px; color:green;">' . $sv ['category_name'] . ' </span> 

} 
<br>'; 
} 

,並與我沒有什麼...

最後的想法是讓下面的

Main cat 1 
    |_Sub Cat 2 
    |_Sub Cat 4 
    |_Sub Cat 6 
Main Cat 2 
    |_Sub Name 2 
    |_Sub Names 3 
[... and son ] ... 

我必須注意到這是我第一次嘗試使用mult idimensional數組,任何幫助將不勝感激。

感謝您在百忙之中閱讀此多維噩夢

回答

0

第一時間,你迭代主陣列,然後你迭代子對象數組。你在這裏處理對象,所以符號是$ object-> variablename而不是$ array ['variablename']。

foreach ($tree as $cats => info){ 
    echo '<span> cat: ' . $info->category_name. '</span><br>'; 

    foreach ($info->children as $child){ 
     echo '<span>' . $child->category_name . '</span>'; 
    } 
} 
+1

感謝您澄清,現在我明白它...謝謝你的例子 – Tanker