可以在数组中添加键值吗?

时间:2014-06-09 12:59:02

标签: php arrays sorting multidimensional-array

可以在我的示例

之后在数组中添加键值
$a = array( '1' => '5', '2' => '7', '3' => '1');

现在我将添加更多像这样的数组键值

$b = array( '1' => '5', '2' => '2');

现在我希望输出像这个相同键的总和

$c = array( '1' => '10', '2' => '9', '3' => '1');

如果我想删除像这样的数组

$c = array( '1' => '7', '2' => '9', '3' => '1');

3 个答案:

答案 0 :(得分:2)

像这样减去。

$minus = array('1'=>3);
foreach($minus as $k => $v){
   if(isset($c[$k])){
       $c[$k]-= $v;
   }else{
       $c[$k] = -$v;
   }
}

这是为了补充:

$add = array('1'=>3);
foreach($add as $k => $v){
   if(isset($add[$k])){
       $c[$k]+= $v;
   }else{
       $c[$k] = $add[$k];
   }
}

当然,您可以将它们包装在函数中,并让它们将新数组设置为不同的数组,以防止覆盖旧数据。

答案 1 :(得分:2)

function array_add($a, $b){
    foreach ($b as $key => $value) {
        if(isset($a[$key]) && is_numeric($a[$key])){
            $a[$key] += $value;
        }
    }
    return $a;
}

function array_subtract($a, $b){
    foreach ($b as $key => $value) {
        if(isset($a[$key]) && is_numeric($a[$key])){
            $a[$key] -= $value;
        }
    }
    return $a;
}

答案 2 :(得分:0)

如何“添加”ab

foreach($a as $key => $value) {
    if(isset($b[$key])) {
        $c[$key] = $a[$key] + $b[$key];
    } else {
        $c[$key] = $a[$key];
    }
}

但是,这会忽略b但不在a中的索引。