php -Merging a Array

时间:2012-12-12 22:49:25

标签: php arrays algorithm merge

我有两个数组,我想在php中以特定方式合并。 所以,当我尝试并失败时,我需要你的帮助来帮助我。

所以说我有两个阵列:

$array1= array(
    "foo"        => 3,
    "bar"        => 2,
    "random1"    => 4,
);

$array2= array(
    "random2"    => 3,
    "random3"    => 4,
    "foo"        => 6,
);

现在,在合并期间,我希望添加公共密钥的值。 就像 foo 存在于 array1 array2 中一样,所以当将array1与数组2合并时,我应该得到"foo" => "9"

我更好的插图将是最终的数组,如下所示:

$array1= array(
    "foo"        => 9,
    "bar"        => 2,
    "random1"    => 4,
    "random2"    => 3,
    "random3"    => 4,
);

所以我希望将公共密钥的值加在一起,将非公共密钥添加到数组或新数组中

我希望我足够清楚

谢谢, Vidhu

2 个答案:

答案 0 :(得分:1)

 foreach($array1 as $k => $v)
 {
     If (isset($array2[$k]))
         $array1[$k] += $array2[$k];
 }
 foreach($array2 as $k => $v)
 {
     If (!isset($array1[$k]))
         $array1[$k] = $array2[$k];
 }

答案 1 :(得分:1)

类似的东西:

function mergeValues() {
    $result = array();
    $arraysToMerge = func_get_args();
    foreach ($arraysToMerge as $array) {
       foreach($array as $key => $value) {
           $result[$key] += $value;
       }
    }

    return $result;
}

$res = mergeValues($array1, $array2, $array3); // Can pass any ammount of arrays to a function.