2012-04-20 55 views
1

我想知道是否有更好的解決方案:將包含具有單個值的數組的數組轉換爲少一個深度的數組。即將包含具有單個元素的數組的數組轉換爲單個深度數組

的陣列打印這樣的:

Array 
(
[0] => Array 
    (
     [item_1] => 5 
    ) 

[1] => Array 
    (
     [item_2] => 7 
    ) 

[2] => Array 
    (
     [item_4] => 1 
    ) 

[3] => Array 
    (
     [item_5] => 1 
    ) 

) 

,並應得到轉化爲打印,如:

$items = array(...) // retrieved from db 
$counts = array(); 
foreach ($items as $item) { 
    foreach ($item as $key => $val) { 
     $counts[$key] = $val; 
    } 
} 

是:

Array 
(
[item_1] => 5 
[item_2] => 7 
[item_4] => 1 
[item_5] => 1 
) 

現在我用這個代碼實現這一目標有一個更好的方法來將包含數組的數組項組合成一個罪gle數組?

回答

1

未經檢驗的,但應該工作:

$items = array(...); 
$counts = array_reduce($items,"array_merge",array()); 
+0

就像一個魅力!我將不得不記住,回調函數可以是任何其他的PHP函數,也就是說,不必是自己編寫的函數!泰 – kontur 2012-04-23 08:08:34

相關問題