2011-09-07 38 views
3

2維數組我有這樣的數組:PHP過濾器通過特定的按鍵

Array 
(
    [702a4584] => Array 
     (
      [type] => folder 
      [id] => 702a4584 
     ) 

    [b547b3a9] => Array 
     (
      [type] => folder 
      [id] => b547b3a9 

     ) 

    [fcb0d055] => Array 
     (
      [type] => page 
      [id] => fcb0d055 
     ) 
) 

我想將濾鏡陣列,使得僅輸入「文件夾」仍將:

Array 
(
    [702a4584] => Array 
     (
      [type] => folder 
      [id] => 702a4584 
     ) 

    [b547b3a9] => Array 
     (
      [type] => folder 
      [id] => b547b3a9 

     ) 

) 

我能做到這一點,但我會需要一個泛型函數:

$temp = array(); 
foreach($array as $key => $value) 
{ 
    if($value['type'] =="folder") 
    { 
     $temp[$key] = $value; 
    } 
} 
+0

你是什麼意思的「泛型函數」? –

回答

19

你可以使用array_filter

$filtered = array_filter($array, function($v) { return $v['type'] == 'folder'; }); 
+1

這應該是'返回$ v ['type'] =='文件夾';'。 –

+0

@fireeyedboy:哎呀,好抓,固定。我在想,因爲某種原因他只想要頁面:) – mfonda

+0

感謝mfonda和fireeyedboy。 –

0
$input = Array(1,2,3,1,2,3,4,5,6); 
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));