【问题标题】:How to subtract number from array values using php?如何使用php从数组值中减去数字?
【发布时间】:2017-02-17 20:10:34
【问题描述】:

我有这个数组。

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

我想从$val 数组中减去3.5,这样每个元素都不会像这样变成负数:

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

【问题讨论】:

    标签: php arrays algorithm numbers


    【解决方案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;
        }
    }
    

    查看demo中的结果

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-02-25
        • 1970-01-01
        • 1970-01-01
        • 2018-05-03
        • 2011-06-20
        • 1970-01-01
        • 1970-01-01
        • 2017-02-09
        • 2023-03-20
        相关资源
        最近更新 更多