2013-03-03 100 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