php математическое сложение числовых значений в 2 ассоциативных массивах - PullRequest
0 голосов
/ 26 января 2011

Возможно, простой для вас:

У меня есть 2 массива

$array1 = array(
  'foo' => 5,
  'bar' => 10,
  'baz' => 6
);

$array2 = array(
  'x' => 100,
  'y' => 200,
  'baz' => 30
);

Я хочу получить третий массив, комбинируя оба вышеупомянутых, которые должны быть:

$result_array = array(
  'foo' => 5,
  'bar' => 10,
  'baz' => 36,
  'x' => 100,
  'y' => 200,
);

Есть ли какой-нибудь встроенный способ массива для этого или мне придется написать свою собственную функцию? Спасибо

Ответы [ 3 ]

2 голосов
/ 26 января 2011
$resultArray = $array1;
foreach($array2 as $key => $value) {
   if (isset($resultArray[$key])) {
      $resultArray[$key] += $value;
   } else {
      $resultArray[$key] = $value;
   }
}
1 голос
/ 26 января 2011

Для этого нет встроенной функции, вам придется написать свою собственную.

0 голосов
/ 26 января 2011

вам нужно

$newArray = $array1;
foreach($array2 as $key => $value) {
    if(array_key_exists($key, $newArray)){
     $newArray[$key] += $value;
    }else{
     $newArray[$key] = $value;
    }
}
...