Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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_Algorithm_Numbers - Fatal编程技术网

如何使用php从数组值中减去数字?

如何使用php从数组值中减去数字?,php,arrays,algorithm,numbers,Php,Arrays,Algorithm,Numbers,我有这个数组 $val = array(1, 0, 2, 1, 1); 我想从$val数组中减去3.5,这样每个元素中的元素不会变成负数,如下所示: $val = array(0, 0, 0, 0.5, 1) 迭代数组项并在循环中检查目标值是否大于循环项,从目标值中减去项值。若循环项大于目标值,则从循环项中减去目标值 $val = array(1, 0, 2, 1, 1); $subtract = 3.5; foreach ($val as $key => $item){ if

我有这个数组

$val = array(1, 0, 2, 1, 1);
我想从
$val
数组中减去
3.5
,这样每个元素中的元素不会变成负数,如下所示:

$val = array(0, 0, 0, 0.5, 1)

迭代数组项并在循环中检查目标值是否大于循环项,从目标值中减去项值。若循环项大于目标值,则从循环项中减去目标值

$val = array(1, 0, 2, 1, 1);
$subtract = 3.5;
foreach ($val as $key => $item){
    if ($subtract >= $item){
        $subtract -= $item; 
        $val[$key] = 0;
    } else {
        $val[$key] -= $subtract;
        $subtract = 0;
    }
}

请参见另一种可能的方法中的结果:将减法值减去当前迭代的值,然后将当前值设置为零或
-$subtract
$subtract
降至零以下时中断

foreach ($val as &$number) {
    $subtract -= $number;
    $number = ($subtract > 0) ? 0 : -$subtract;
    if ($subtract <= 0) break;
}
foreach($val as&$number){
$subtract-=$number;
$number=($subtract>0)?0:-$subtract;
如果($减去