首页 > 解决方案 > PHP数组删除元素或减法

问题描述

我有一个值数组 [20,40,30,50],我还有另一个值为 30 的变量。

我需要从第一个元素中减去 30。如果 $var 更大,则需要删除第一个元素并从数组中的下一个元素中减去剩余值。

示例:$arr = array(20,40,30,50); $var = 30;

结果数组应为 (30,30,50)

谢谢

标签: phparrays

解决方案


循环数组并相应地减去和/或取消设置值。

$arr = [20,40,30,50];
$var =30;

Foreach($arr as $key => &$val){
    If($var > $val){
        $var -= $val;
        Unset($arr[$key]);
    }Else{
        $val -= $var;
        $var = 0;
    }
}
Unset($val);
Var_dump($arr);

https://3v4l.org/vJN2o

您也可以添加此行If($var>0) Echo $var;,以查看循环结束时 $var 中是否还有任何内容。
https://3v4l.org/LU2Tf

更新链接以包含 $var =0;


推荐阅读