如何在数组中添加键和值?

时间:2015-05-21 07:00:07

标签: php arrays add

例如

$array1 = array(item1=>5,item2=>7);
$array2 = array(item1=>5,item3=>7);

实际上我想首先检查数组,如果存在相同的键意味着值应该(算术地)添加 如果不存在则直接推送到数组。

我的输出就像

$nov-2014 =array(item1=>10,item2=>7,item3=>7)

4 个答案:

答案 0 :(得分:3)

你可以简单地使用简单的for和foreach来达到这个目的。当然创建最终的容器。初始化值,然后只是不断添加直通键:

$array1 = array('item1'=>5,'item2'=>7);
$array2 = array('item1'=>5,'item3'=>7);

$result = array();
for($x = 1; $x <= 2; $x++) {
    foreach(${"array$x"} as $key => $values) {
        if(!isset($result[$key])) $result[$key] = 0; // initialize
        $result[$key] += $values; // add
    }
}

print_r($result);

Sample Output

答案 1 :(得分:3)

试试这个:

$array1 = array(
    'item1' => 5,
    'item2' => 7
);
$array2 = array(
    'item1' => 5,
    'item3' => 7
);
$array_new = $array2;
foreach ($array1 as $key => $value) {
    if (!in_array($key, $array2)) {
        $array_new[$key] = $value + $array2[$key];
    }
}

答案 2 :(得分:2)

我认为没有内置的PHP函数,请使用foreach

$array1 = array('item1' => 5, 'item2' => 7);
$array2 = array('item1' => 5, 'item3' => 7);
$result = $array1;

foreach ($array2 as $key => $val) {
    if (isset($result[$key])) {
        $result[$key] += $val;
    } else {
        $result[$key] = $val;
    }
}

/*
    Output:
    Array
    (
        [item1] => 10
        [item2] => 7
        [item3] => 7
    )
*/

答案 3 :(得分:-2)

试试storage-viz tool。对于关联数组,这将保持相同的键