Php 如何得到foreach循环的和?

Php 如何得到foreach循环的和?,php,Php,我有一个foreach循环问题,我认为我的逻辑有问题。表中的数据将从付款金额中减去,如果付款金额为0,则将停止循环 PHP 5 这是我桌子上的数据 2000 15000 3000 我总是得到这个输出 3000 -12000 -15000 这应该是正确的输出 -2000 -3000 我想你想要达到的是 $payment_amount_pay = 5000; foreach ($data as $value) { $amount = $value['AMOUNT']; If

我有一个foreach循环问题,我认为我的逻辑有问题。表中的数据将从付款金额中减去,如果付款金额为0,则将停止循环

PHP 5

这是我桌子上的数据

2000
15000
3000
我总是得到这个输出

3000
-12000
-15000
这应该是正确的输出

-2000
-3000

我想你想要达到的是

   $payment_amount_pay = 5000;

foreach ($data as $value) {

    $amount = $value['AMOUNT'];
If ($payment_amount_pay -= amount > 0){
    $payment_amount_pay = $payment_amount_pay - $amount;}


    echo “-“.$amount;

}
2000年、15000年、3000年,我认为这一数额代表了美元价值[‘金额’]


如何成为-2000和-3000?

我相信你希望它是这样的

$payment_amount_pay = 5000;

foreach ($data as $value) {

    // Check if the amount already used up
    if($payment_amount_pay < 0) {
        break;
    }

    $amount = $value['AMOUNT'];

    // Get the differences
    $payment_amount_pay = $payment_amount_pay - $amount;

    if($payment_amount_pay >= 0) {
        // Changed to negative (not sure why you need it)
        echo 0  - $amount."<br>";
    }
    else {
        // Changed to negative (not sure why you need it)
        echo 0  - $payment_amount_pay - $amount."<br>";
    }
}

你能说清楚你想要什么吗?根据表条目和正在运行的代码,您编写的正确输出看起来不正确。你认为正确的输出应该是你写的吗?我认为这里需要更多的信息。例如,$value是否如您所示是单个值或集合。对于$value['AMOUNT']?仅从第一次迭代开始5000-2000=3000,-2000怎么可能是正确的?$payment\u AMOUNT\u pay=$payment\u AMOUNT\u pay-$value['AMOUNT'];减去付款金额后,输入$payment\u amount\u pay。所以,$payment\u amount\u pay value被覆盖;然而,您只是使用了原始数据$payment\u amount\u pay=$payment\u amount\u pay-$value['amount'];嗯,差不多吧,如果我有5000美元的话。该金额将在表格数据中减去。就像我上面所说的。你的错误是,你需要一个if语句,并检查付款金额减去表中的金额是否会高于或低于0:如果支票返回truehmmm,你应该只做减法。例如:如果我的表中有2000,15000,我有5000的付款,付款将在2000年减去,剩下的将是剩下的。嗨,答案是正确的,但我有澄清。你介意我澄清一下吗?当然可以。请随便问。
$payment_amount_pay = 5000;

    foreach ($data as $value) {

        $amount = $value['AMOUNT'];

        $payment_amount_pay = $payment_amount_pay - $amount;

        // first loop => 3000  = 5000 - 2000;  3000 will be $payment_amount_pay
        // second loop => -12000  = 3000 - 15000; -12000 will be $payment_amount_pay
        // third loop =>  -15000  = -12000 - 3000; -15000 will be $payment_amount_pay

        echo $payment_amount_pay;

    }
$payment_amount_pay = 5000;

foreach ($data as $value) {

    // Check if the amount already used up
    if($payment_amount_pay < 0) {
        break;
    }

    $amount = $value['AMOUNT'];

    // Get the differences
    $payment_amount_pay = $payment_amount_pay - $amount;

    if($payment_amount_pay >= 0) {
        // Changed to negative (not sure why you need it)
        echo 0  - $amount."<br>";
    }
    else {
        // Changed to negative (not sure why you need it)
        echo 0  - $payment_amount_pay - $amount."<br>";
    }
}