PHP如何实现数组当前元素累加前一个元素的值
实现方案
你可以额外引入一个临时变量存储累计值,遍历数组时动态更新即可,修改后的可运行代码如下:
<!DOCTYPE html> <head> </head> <body> <?php $arr = [422, 322, -52323, 7452]; // 存储累计值,初始为0 $accumulate = 0; foreach ($arr as &$val) { // 累加前值后赋值给当前元素 $val = $val + $accumulate; // 更新累计值为当前元素计算后的值,供下一个元素使用 $accumulate = $val; echo "$val<br>"; } ?> </body> </html>
运行后输出结果为:
422 744 -51579 -44127
如果你需要保留原数组不变,只输出累计结果,可以去掉&引用符号,直接输出计算后的结果即可。
如果是连续数字索引的数组,也可以用for循环直接通过下标取前一个元素的值,写法更直观:
$arr = [422, 322, -52323, 7452]; // 第一个元素无需累加前值,直接输出 echo $arr[0]."<br>"; for ($i = 1; $i < count($arr); $i++) { $arr[$i] = $arr[$i] + $arr[$i - 1]; echo $arr[$i]."<br>"; }
内容的提问来源于stack exchange,提问作者Ac0
相关产品推荐
相关产品推荐

