2014-04-20 81 views
-1

我怎樣才能使此陣:陣列刪除父數值數組

array(2) { 
    [0]=> 
    array(1) { 
    ["plz"]=> 
    string(4) "4460" 
    } 
    [1]=> 
    array(1) { 
    ["plz"]=> 
    string(4) "4000" 
    } 
} 

變爲像這樣只需要在一個數組中的鍵的值不事關:

array(2) { 
    [0]=> 
    string(4) "4460" 
    [1]=> 
    string(4) "4000" 
} 

有幫助功能還是可以幫助的?

+0

可能重複的那些陣列[是否有一個函數從在PHP陣列提取「列」?](http://stackoverflow.com/questions/1494953/is-there -a-功能到提取物的一列從 - 一個陣列功能於PHP) –

回答

7

如果關鍵是事先知道的:

如果你使用PHP 5.5 +,你可以使用array_column()plz鍵提取所有子陣:

$result = array_column($array, 'plz'); 

同樣可以使用array_map()如果您使用的是舊版本的PHP:

$result = array_map(function($sub) { return $sub['plz']; }, $array); 

如果關鍵是事先不知道:

使用array_walk_recursive()

$result = array(); 
array_walk_recursive($array, function($v) use (&$result) { $result[] = $v; }); 

注意,它的工作原理遞歸,所以如果你有更復雜的陣列,它還是會正常工作。

或者,你可以使用RecursiveIteratorIterator類:

$result = array(); 
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); 

foreach($iterator as $value) { 
    $result[] = $value; 
} 

有關詳細信息,請參閱此問題:How does RecursiveIteratorIterator work in PHP?

2

另一種選擇:

$array = call_user_func_array('array_merge', array_map('array_values', $array)); 
  1. 獲取數字索引從陣列使用的子陣列使用array_values()
  2. 合併使用的array_merge()