-6

私はここにこのコードを持っています...

$remaining = 0;
foreach($clientArrayInvoice as $key=>$row){
            $remaining = $remaining + $row['total'];   
}

それが何をするか、それは合計の値を取り、それらを加算します...しかし、負の値がある場合、例としてそれらを加算し、それがどれであるべきか-51.75-17.85取得します?-69.60-33.90

`-33.901 は私が期待している値です

ありがとう、J

4

3 に答える 3

9

これは役立つかもしれません:

(-51.75) + (-17.85) = -69.60
(-51.75) - (-17.85) = -33.90

符号に関係なく常に 2 番目の数値を追加する必要があると仮定すると、次のように PHPabs関数を使用して絶対値を取得する必要があり$row['total']ます。

$remaining = 0;
foreach($clientArrayInvoice as $key=>$row){
    $remaining = $remaining + abs($row['total']);   
}

質問で更新した内容に応じて:

-33.90 は私が期待している値です

absこれは、関数を使用して行うこととほとんど同じです。上記のコード スニペットを次のように書き直すことができます。

$remaining = 0;
foreach($clientArrayInvoice as $key=>$row) {
    if ($remaining >= 0) {
        $remaining = $remaining + abs($row['total']);   
    }
    else {
        $remaining = $remaining - abs($row['total']);   
    }
}

absただし、これは単に PHP関数を使用するのとまったく同じことを行い$row['total']ます$remaining

于 2012-08-27T16:33:07.797 に答える
3

もう一度 -->記号を無視して何かを追加したい場合は、 php のabs() 関数を参照してください。

于 2012-08-27T16:32:51.920 に答える
0

あなたの質問が正確に何であるかはわかりませんが、$remaining負の場合は再び正になるまで絶対値を追加し続けます。

$remaining = $remaining + ($remaining < 0 && $row['remainingbalance'] < 0 ? -1 : 1) * $row['remainingbalance']);

これはあなたの例ではうまくいきます0 - 51.75 + 17.85 = -33.9. しかし、それが全体像で望む動作であるかどうかはわかりません。

于 2012-08-28T14:17:17.530 に答える