Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以在数组中添加键值?_Php_Arrays_Sorting_Multidimensional Array - Fatal编程技术网

Php 是否可以在数组中添加键值?

Php 是否可以在数组中添加键值?,php,arrays,sorting,multidimensional-array,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'

可以按照我的示例在数组中添加键值

$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');

像这样的减法

$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];
   }
}

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

像这样进行减法运算

$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];
   }
}
当然,您可以将这些函数包装在函数中,让它们将新数组设置为不同的值,以防止覆盖旧数据。

如何“添加”
a
b

foreach($a as $key => $value) {
    if(isset($b[$key])) {
        $c[$key] = $a[$key] + $b[$key];
    } else {
        $c[$key] = $a[$key];
    }
}
但是,这将忽略
b
中但不在
a
中的索引如何“添加”
a
b

foreach($a as $key => $value) {
    if(isset($b[$key])) {
        $c[$key] = $a[$key] + $b[$key];
    } else {
        $c[$key] = $a[$key];
    }
}
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;
}

但是,这将忽略
b
中的索引,而不是
a

中的索引。您的问题很混乱。你应该解释一下,什么是场景,你试图得到什么,它抛出了什么错误。你的问题很混乱。你应该解释,什么是场景,你试图得到什么,它抛出了什么错误。
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;
}