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

3

我有一个数组。

$val = array(1, 0, 2, 1, 1);

我希望从$val数组中减去3.5,但要确保每个元素不为负数,操作如下:

$val = array(0, 0, 0, 0.5, 1)
2个回答

4

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

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

演示中查看结果。


3
另一种可能的方法是:通过当前迭代的值减少减去的值,然后将当前值设置为零或-$subtract。当$subtract降至零以下时停止。
foreach ($val as &$number) {
    $subtract -= $number;
    $number = ($subtract > 0) ? 0 : -$subtract;
    if ($subtract <= 0) break;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接