-1

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

所以说我有两个数组:

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

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

现在,在合并期间,我希望添加公共键的值。所以像foo存在于array1array2中,所以当将 array1 与 array 2 合并时,我应该得到"foo" => "9"

我更好的说明是看起来像这样的最终数组:

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

所以我再次希望将公共键的值添加在一起,并将非公共键添加到数组或新数组中

我希望我足够清楚

谢谢, 维杜

4

2 回答 2

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.
于 2012-12-12T22:58:11.580 回答
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];
 }
于 2012-12-12T22:55:04.317 回答