如何使用PHP循环实现从本金逐次扣减数组元素的累计计算效果
PHP循环逐次扣款实现方案
问题根因
出现该问题的核心原因是没有在循环外部维护剩余金额的可变变量,大概率是在循环体内部每次都重新将剩余金额赋值为初始的$Capital = 1000,导致每一轮扣款都从初始值计算,无法累计上一轮的扣减结果。
正确实现代码
<?php // 初始参数定义 $pay = [20, 40 , 89, 300, 190, 15]; $Capital = 1000; // 循环外初始化剩余金额,和初始本金对齐 $remaining = $Capital; // 遍历扣款数组逐次扣减 foreach ($pay as $deductItem) { $preAmount = $remaining; $remaining -= $deductItem; // 输出当前步骤扣减等式 echo "{$preAmount} - {$deductItem} = {$remaining}" . PHP_EOL; } // 输出最终结果 echo "最终剩余本金:" . $remaining; ?>
运行输出结果
- 1000 - 20 = 980
- 980 - 40 = 940
- 940 - 89 = 851
- 851 - 300 = 551
- 551 - 190 = 361
- 361 - 15 = 346
- 最终剩余本金:346
内容的提问来源于stack exchange,提问作者Segun
相关产品推荐
相关产品推荐

