2013-03-03 101 views
1

陣列分成兩個相同的陣列我有一個數組,看起來像這樣:斯普利特鍵值

MyArray (
    [0] => Array (
          [board_id] => 1047999 
          [added_date] => 2013-02-28 11:14:02 
          [type] => 4 
          ) 
    [1] => Array (
          [board_id] => 1047999 
          [added_date] => 2013-02-28 11:14:02 
          [type] => 1 
         ) 
    [2] => Array (
          [board_id] => 1047999 
          [added_date] => 2013-02-28 11:14:02 
          [type] => 4 
         ) 
    [3] => Array (
          [board_id] => 1047999 
          [added_date] => 2013-02-28 11:14:02 
          [type] => 1 
         ) 
) 

我如何通過type拆分該陣列,並保持完全相同的陣列結構?即我會有兩個子陣列的MyArrayT4和兩個子陣列的MyArrayT1?

TIA!

+0

的最後條目,是否存在'[3] =>數組('缺少?? – michi 2013-03-03 21:15:46

回答

2

使用array_filter這樣 EDIT用array_values重置

$filtering = function($type) use($your_array) { 
    $filtered = array_filter($your_array, function($r) use($type) { 
     return $r['type'] == $type; 
    }); 

    return array_values($filtered); 
}; 


$array_1 = $filtering->__invoke('4'); 
$array_2 = $filtering->__invoke('1'); 
+0

豈不是更好通過輸入數組作爲一個參數而不是'use'嗎?'__invoke'也是不必要的'$ filtering()'就夠了 – Yoshi 2013-03-03 21:18:54

+0

我不知道你可以在PHP中使用javascript風格的'var = function(){}'指令。真棒 – 2013-03-03 21:20:00

+1

@AustinMullins自從PHP 5.3支持'閉包'以後...你可以通過數組.. – silly 2013-03-03 21:22:35