亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP:在 for 循環中出現計算問題

PHP:在 for 循環中出現計算問題

PHP
慕標5832272 2022-07-22 15:26:31
對不起這個愚蠢的問題。我想花費 25 個積分,我的可用積分是 30(10,10,10)。但在我下面的示例代碼中,最終數量是減(-)5 值而不是 5。請檢查我的代碼、實際輸出和我的預期結果:代碼:<?php$content_credit = 25;$data = array(10,10,10);$used_credit = 0;for($i=0; $i<count($data); $i++){    if($content_credit > $used_credit){        $used_credit += $data[$i];        echo "Point: " . $data[$i];        echo " Used: " . $used_credit;        echo " Remaining: " . ($content_credit - $used_credit);    }    echo "<br>";}實際結果:Point: 10 Used: 10 Remaining: 15Point: 10 Used: 20 Remaining: 5Point: 10 Used: 30 Remaining: -5預期結果:Point: 10 Used: 10 Remaining: 15Point: 10 Used: 20 Remaining: 5Point: 10 Used: 25 Remaining: 5
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

$content_credit在第一次迭代中變為 10,然后在第二次迭代中變為 20,因為+=.

因此 25 - 10 - 20 = -5


查看完整回答
反對 回復 2022-07-22
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

<?php

$credit_to_spend = 25;

$available_credit = array(10,10,10);

$used_credit = 0;


for( $i=0; $i<count($available_credit); $i++ ){

    if( $credit_to_spend > $used_credit ){


        $required = ($credit_to_spend - $used_credit);

        $used_credit += ($required < $available_credit[$i]) ? $required : $available_credit[$i];

        $remaining = (($required < $available_credit[$i]) ? ($available_credit[$i] - $required): ($credit_to_spend - $used_credit));


        echo "Point: " . $available_credit[$i] 

        . " Used: " . $used_credit 

        . " Remaining: " . $remaining;

    }

    echo "<br>";

}


查看完整回答
反對 回復 2022-07-22
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

您可能正在尋找類似的東西:


<?php

$content_credit = 25;

$data = array(10,10,10);

$total = array_sum($data);

$used_credit = 0;

for($i=0; $i<count($data); $i++){

    if($content_credit > $used_credit){

        $used_credit += $data[$i];

        echo "Point: " . $data[$i];

        echo " Used: " . $used_credit;

        $remaining = $used_credit > $content_credit ? $total - $content_credit :  $total - $used_credit;

        echo " Remaining: " . $remaining;

    }

    echo "<br>";

}

你需要知道你總共有多少信用來計算余額。


$used_credit要獲得實際使用的信用額度,只需知道和之間哪個值更小就足夠了$content_credit。所以你可以min()用來獲取價值。


echo " Used: " . min($used_credit, $content_credit);

類似地,$remaining可以用max()三元運算符結果的值或簡單的計算來代替$total - $actual_used。


echo " Remaining: " . max($total - $content_credit,  $total - $used_credit);


查看完整回答
反對 回復 2022-07-22
  • 3 回答
  • 0 關注
  • 124 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號