Php 如何减少每次迭代后的总数

Php 如何减少每次迭代后的总数,php,Php,我有一个$paymentsTotal变量,它是所有付款的总和。然后我想循环所有未付金额,并减少每个未付金额的$paymentsTotal变量 例如: 只要$paymentsTotal大于未付金额,它就应该返回true 我试过这个: foreach ($invoices as $invoice) { if($paymentTotal >= $paymentTotal -= $invoice->amount) { echo $invoice->amount .

我有一个$paymentsTotal变量,它是所有付款的总和。然后我想循环所有未付金额,并减少每个未付金额的$paymentsTotal变量

例如:

只要$paymentsTotal大于未付金额,它就应该返回true

我试过这个:

foreach ($invoices as $invoice) {
  if($paymentTotal >= $paymentTotal -= $invoice->amount) {
        echo $invoice->amount . ' - PAID <br>';
   }
}
foreach($invoices作为$invoice){
如果($paymentTotal>=$paymentTotal-=$invoice->金额){
echo$发票->金额。“-已支付
”; } }
但不管发生什么,它都会呼应出每个结果。

试试像

$paymentTotal=0;//无论迭代之前是什么
foreach($发票作为$发票){
如果($invoice->amount>$paymentTotal){
$paymentTotal-=$invoice->amount;//假设您有一个用于支付金额的字段
$invoice->amount=$paymentTotal;//新发票金额
回显“{$invoice->amount}-已付款
”; } }
如果内部有未定义的行为,请不要使用自动删除运算符。最好在if之前或之后进行拆卸,然后进行检查。谢谢您的帮助,但它似乎没有按预期工作。看起来尼科斯M的建议很好
foreach($invoices as$invoice){$something=$paymentTotal-$paymentTotal-=$invoice->amount;if($paymentTotal>=$something){echo$invoice->amount.-PAID
;}}
欢迎您。请用该代码回复并接受您的答案,以便其他用户可以看到您为解决该问题所做的操作。也许Nikos可以创建一个答案,以便我可以将其标记为答案。
foreach ($invoices as $invoice) {
  if($paymentTotal >= $paymentTotal -= $invoice->amount) {
        echo $invoice->amount . ' - PAID <br>';
   }
}