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
)