我想从另一个数组中减去一个数组。
例如我有2个数组。
Array
(
[0] => 251
[1] => 251
[2] => 130
)
Array
(
[0] => 13
[1] => 13
[2] => 50
)
结果数组必须是
Array
(
[0] => 238
[1] => 238
[2] => 80
)
对此有任何帮助表示赞赏。
答案 0 :(得分:4)
试试这个:
$array1 = array(251, 251, 130);
$array2 = array( 13, 13, 50);
$res = array();
for($i=0;$i<count($array1);$i++){
$res[$i] = $array1[$i]-$array2[$i];
}
echo "<pre>";
print_r($res);
答案 1 :(得分:4)
使用array_map
的解决方案:
function subtract($a, $b) {
return $a - $b;
}
$arrayA = array(251, 251, 130);
$arrayB = array( 13, 13, 50);
$output = array_map('subtract', $arrayA, $arrayB);
如果输入数组具有不同的尺寸,它仍然有效。
简单的foreach循环解决方案:
$arrayA = array(251, 251, 130);
$arrayB = array( 13, 13, 50);
$output = array();
for ( $i = 0; $i < size($arrayA); ++$i ) {
$output[] = $arrayA[$i] - $arrayB[$i];
}
答案 2 :(得分:0)
试试这个
function subArray($arr1, $arr2) {
$res = array();
foreach ($arr1 as $key => $value) {
$res[$key] = $arr2[$key] - $arr1[$key];
}
}
答案 3 :(得分:0)
$arr1 = array(251, 251, 130);
$arr2 = array( 13, 13, 50);
$result_array = array();
for ( $i = 0; $i < size($arr1); ++$i ) {
$result_array [] = $arr1[$i] - $arr2[$i];
}
print_r($result_array);
答案 4 :(得分:0)
我这里有一个示例代码
function array_sub_values($arr1, $arr2)
{
$result = array();
foreach ($arr1 as $k => $val)
$result[] = $val - $arr2[$k];
return $result;
}
所以你可以这样做:
$arr1 = array(1, 2, 3);
$arr2 = array(0, 0, 1);
$arr3 = array_sub_values($arr1, $arr2);
答案 5 :(得分:0)
在一行中$ array3 = $ array1 - $ array2是
$array3 = array_intersect($array1, array_diff($array1, $array2));
答案 6 :(得分:-1)
如果您不想销毁阵列,那么: -
代码:
$array3=array1;
while(list($key,$value)=each($array3))
{
if(isset($array2[$key])) $array3[$key]-=$array2[$key];
}