2012-07-19 144 views
0

可能重複:
PHP Array_Sum on multi dimensional array多維數組到一維數組由相同的鍵

我有兩個陣列時二維如下。

array(
    (int) 0 => array(
     'Chrome' => '10', 
     'Firefox' => '3', 
     'Internet Explorer' => '1', 
     'Safari' => '1', 
     'Mobile' => (int) 0, 
     'Others' => (int) 0 
    ), 
    (int) 1 => array(
     'Chrome' => '5', 
     'Firefox' => '2', 
     'Safari' => '2', 
     'Internet Explorer' => '1', 
     'Opera' => '1', 
     'Mobile' => (int) 0, 
     'Others' => (int) 0 
    ) 
) 

我想爲相同的鍵添加值,並按如下所示將它放入單個數組中。

array(
    'Chrome' => '15', 
    'Firefox' => '5', 
    'Internet Explorer' => '2', 
    'Safari' => '3', 
    'Opera' => '1', 
    'Mobile' => '0' 
    'Others' => '0' 
) 

請給我這個解決方案。

+0

可能重複(http://stackoverflow.com/q/1404422/) – outis 2012-07-19 06:57:33

+2

[你嘗試過什麼?](http://whathaveyoutried.com)。雖然「請給我解決方案」是禮貌的,但這是一種糟糕的懶惰。如果你想成爲一名出色的開發人員,那麼你需要學習如何解決問題,而不是依賴於其他方面。而不是要求最後一步,說明你正在進行的步驟,並尋求幫助進入下一步。這也不是什麼, SO是針對有關特定代碼問題的問題。如果您需要設計方面的幫助,請嘗試[程序員.SE](http://programmers.stackexchange.com/)。 – outis 2012-07-19 07:01:39

回答

3

迭代子數組並接管鍵和值對。如果它們存在,則將該值(整數算術和操作)添加到現有值。

當您完成迭代子數組時,結果已準備就緒。的[PHP Array_Sum多維數組]

$array = array(); 
foreach ($subArrays as $subArray) 
{ 
    foreach ($subArray as $key => $value) 
    { 
     isset($array[$key]) || $array[$key] = 0; 
     $array[$key] += (int) $value; 
    } 
} 

// ready, but make all strings: 
$array = array_map('strval', $array);