Php 两个数组值的运算?

Php 两个数组值的运算?,php,arrays,Php,Arrays,两个数组值的运算 我有两个阵列: $before = array("a"=>400, "b"=>500, "c"=>600 ); $after = array("a"=>100, "b"=>100, "c"=>100 ); 我想得到这样的结果: $now = array( "a"=>300,//400-100 "b"=>400,//500-100

两个数组值的运算

我有两个阵列:

$before =
array("a"=>400,
  "b"=>500,
  "c"=>600
);

  $after = 
  array("a"=>100,
      "b"=>100,
      "c"=>100
  );
我想得到这样的结果:

  $now = 
   array(
        "a"=>300,//400-100
        "b"=>400,//500-100
        "c"=>500 //600-100
  );
编辑:

$after的某些元素可能会丢失

例如:

$after = 
      array("a"=>100,
          "c"=>100
      );
如果两个数组中的元素完全相同,则此选项有效

function subtract_arrays($a, $b){
    if(count($a) != count($b)){
        return false;
    }
    $c = array();
    foreach($a as $k=>$v){
        $c[$k] = $a[$k]-$b[$k];
    }
    return $c;
}

$now = subtract_arrays($before, $after);
如果两个数组中的元素完全相同,则此选项有效。

您可以使用:

function subtract_arrays($a, $b){
    if(count($a) != count($b)){
        return false;
    }
    $c = array();
    foreach($a as $k=>$v){
        $c[$k] = $a[$k]-$b[$k];
    }
    return $c;
}

$now = subtract_arrays($before, $after);
输出:

您可以使用:

输出:


@IEnAk:是的,您将在res数组的第三个元素中获得600。@IEnAk:是的,您将在res数组的第三个元素中获得600。
function subtract_arrays($a, $b){
    if(count($a) != count($b)){
        return false;
    }
    $c = array();
    foreach($a as $k=>$v){
        $c[$k] = $a[$k]-$b[$k];
    }
    return $c;
}

$now = subtract_arrays($before, $after);
$before = array(
    "a"=>400,
    "b"=>500,
    "c"=>600
);

$after = array(
    "a"=>100,
    "b"=>100,
    "c"=>100
);
function dif($a, $b) {
    return $a - $b;
}
$res = array_map("dif", $before, $after);
print_r($res);
Array
(
    [0] => 300
    [1] => 400
    [2] => 500
)