2012-09-09 142 views
0

我有一個數組:$類型:PHP數組多維數組的foreach

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [cat] => Main 
      [type] => name0  ) 

    [1] => Array 
     (
      [id] => 2 
      [cat] => Main 
      [type] => Name1  ) 

    [2] => Array 
     (
      [id] => 3 
      [cat] => Main 
      [type] => Name2  ) 

    [3] => Array 
     (
      [id] => 4 
      [cat] => Main 
      [type] => Name3  ) 

    [4] => Array 
     (
      [id] => 5 
      [cat] => Secondary 
      [type] => Name4  ) 

    [5] => Array 
     (
      [id] => 6 
      [cat] => Secondary 
      [type] => Name5  ) 

    [6] => Array 
     (
      [id] => 7 
      [cat] => Secondary 
      [type] => Name6  ) 

    [7] => Array 
     (
      [id] => 8 
      [cat] => Other 
      [type] => Name7 
     ) 

    [8] => Array 
     (
      [id] => 9 
      [cat] => Other 
      [type] => Name8 
     ) 

    [9] => Array 
     (
      [id] => 10 
      [cat] => Other 
      [type] => Name9 
     ) 

    [10] => Array 
     (
      [id] => 11 
      [cat] => Other 
      [type] => name10 
     ) 

) 

而且我想重新把它建設成爲一個多方向陣列。但是按照貓 分組在一起,所以它們可以是主數據庫,輔助數據庫和其他*,這些數據庫可能會或可能會從數據庫中更改。隨着越來越多的添加,因此推薦使用$types['cat']

另外我還有一個。那有cat1/cat2我需要做同樣的事情,但是在我得到這個工作之後,我希望我能夠解決這個問題。

我看過這裏,並在谷歌。這裏有一些類似的例子,但是我沒有能夠讓他們中的任何一個正確工作。據我所知,我認爲最好的路線是使用foreach()然後建立一個新的陣列?

回答

0

是這樣的?

<? 
$all = array(
    array('id'=>1, 'cat'=>'Main','type'=>'Name0'), 
    array('id'=>2, 'cat'=>'Main','type'=>'Name1'), 
    array('id'=>3, 'cat'=>'Main','type'=>'Name3'), 
    array('id'=>4, 'cat'=>'Sec','type'=>'Name4'), 
    array('id'=>5, 'cat'=>'Sec','type'=>'Name5'), 
    array('id'=>6, 'cat'=>'Sec','type'=>'Name6'), 
); 

$result = array(); 
foreach($all as $array){ 
    $result[$array['cat']][] = array('id'=>$array['id'],'type'=>$array['type']); 
} 

die(print_r($result)); 
+0

woq。那很完美。你不知道我查過的所有東西,並嘗試過,並修改,併發瘋,因爲我不能讓它工作。像這樣一個例子:[鏈接](http://stackoverflow.com/questions/6085927/php-foreach-loop-to-build-multi-array?rq=1)...但謝謝你。這似乎很簡單。 – Dev

+0

好的。所以它沒有像我想的那樣工作。 D'哦。這似乎工作。但在$ json_encode()上沒有正確編碼失敗。但這是一個很好的開始。 – Dev