可以在我的示例
之后在数组中添加键值$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');
答案 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)
如何“添加”a
和b
:
foreach($a as $key => $value) {
if(isset($b[$key])) {
$c[$key] = $a[$key] + $b[$key];
} else {
$c[$key] = $a[$key];
}
}
但是,这会忽略b
但不在a
中的索引。