2013-11-27 48 views
0

試想以下兩個數組:在PHP中求和數組?

$array1 = array('dogs' => 3, 'cats' => 5); 
$array2 = array('dogs' => 2, 'cats' => 7); 

是否有一個本地的PHP 5.5功能,或任何最優解得到以下結果呢?

$result = array('dogs' => 5, 'cats' => 12); 
+1

'$數組1 [ '狗'] + $數組2 [ '狗'] ' –

回答

0

我想你最好寫一個多維的款項自己的解決方案:

<?php 

function sumEach($original, $array) { 
    foreach($array as $key => $value) { 
     if(!array_key_exists($key, $original)) 
      $original[$key] = $value; 
     else 
      $original[$key] += $value; 
    } 
    return $original; 
} 

$totals = array(); 

$totals = sumEach($totals, $array1); 
$totals = sumEach($totals, $array2); 

?> 

然後從$totals您的輸出如下:

Array(
    'dogs' => 5, 
    'cats' => 12 
); 

這裏有一個演示: https://eval.in/73948

3

答案是肯定的。但是你必須爲此寫一個自定義函數。約拿給出了一個很好的答案。

Here is a solution for numeric arrays.

關聯數組:

$sum = array_combine(array_keys($array1), array_map('bcadd', $array1, $array2)); 

bcadd可以讓你避免創建自己的新增功能)

+0

將其鏈接爲評論 –

+0

我使用了參考,並且也轉發到了實際的鏈接。 – Anam

+0

+1使用bcadd,而不是循環或自定義函數。 –