如何在多个条件下通过5次迭代增加变量值

我正在尝试将一些代码放入循环中。我要实现的是,每增加5个产品数量,就将税收加到总计中。

if($items['qty'] >= 5 && $items['qty'] < 10){
    $tax += $items[$type] * 1;
}

if($items['qty'] >= 10 && $items['qty'] < 15){
    $tax += $items[$type] * 2;
}

if($items['qty'] >= 15 && $items['qty'] < 20){
    $tax += $items[$type] * 3;
}
if($items['qty'] >= 20 && $items['qty'] < 25){
    $tax += $items[$type] * 4;
}

我尝试了这段代码,它可以使用静态值。如果有人帮助我将此代码放入循环中,那就太好了。

示例:税费= $ 10。对于数量为1到4的产品,税金为$ 10。对于数量为5至9的产品,税率为20美元,对于数量为9至14的产品,税率为30美元,依此类推...

lgl26 回答:如何在多个条件下通过5次迭代增加变量值

$ items ['data'] = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);

$ tax = 10;

$ j = 5;

$ k = 1; for($ i = 0; $ i

echo $items['data'][$i];

} $ j = $ j + 5;

echo“
”。$ tax * $ k。“
”;

$ k = $ k + 1;

for($ i = 5; $ i

echo $items['data'][$i];

} $ j = $ j + 5;

echo“
”。$ tax * $ k。“
”;

$ k = $ k + 1;

for($ i = 10; $ i

echo $items['data'][$i];

}

$ j = $ j + 5;

echo“
”。$ tax * $ k。“
”;

$ k = $ k + 1;

,

这应该有助于计算因子。什么是$ type?

$items['qty'] = 24;
$tax = 10;
$floorFactor = floor($items['qty'] / 5);

$factor = $floorFactor === 0 ? 1 : $floorFactor;

echo '$floorFactor is ' . floor($items['qty'] / 5);

$tax += $items['qty'] * $factor;

echo "<br > tax is $tax <br />";
,

有很多方法可以做到这一点,您可能不需要循环(3行代码可能就足够了),但是您想要循环就可以尝试这样的事情。您所询问的是一个循环:

$ j按数字顺序增加1,因此每次乘以5的倍数时,乘数都会增加10(您的税),直到$ items ['qty']中的值。

$ multiplicator在开始时等于10,然后在循环中每5项将增加10,对于维护而言,如果更改税额,则只需更改此一项。

($ j%5)=== 0)用于检查$ j是否为5的倍数,如果您决定要更改更多或更少的项目,则此处维护时需要更改此倍数。税。

    $multiplicator = 10; 
             for($j = 1; $j <= $items['qty']; $j++){ 
                     if(($j % 5) === 0){ 
                         $multiplicator += 10;
                         }
                     //echo $j."-".$multiplicator."<br>"; // to check how it works
                     }
//$tax += $items[$type] + $multiplicator; // I would finish like that but i don't know what is $type
// so to match your multiplication number in $tax += $items[$type] * x you need the code below as well
//(($multiplicator/10)-1) is to match your multiplication numbers in your code as $tax += $items[$type] * x;
        if((($multiplicator/10)-1) == 0){ 
            $tax += $items[$type]; // less than 5 items
            }
        else{
            $tax += $items[$type] * (($multiplicator/10)-1); // 5 items and above 
            }
,

最后,我使用数组函数和foreach循环实现了这一点。这可能是一个很长的代码,但我无法很快实现。

            if ($items['qty'] >= 5){
                  $tax += $items[$type];   // $items[$type] is a tax that is being fetched from the product table
                  // Calculation Start
                  $keys = range(1,25);
                  $num = range($items['qty'],$items['qty'] + 5);
                  $a = array_fill_keys($keys,$num);

                  foreach ($a as $keys => $endnum) {
                        if ($endnum[$keys] % 5 == 0) {
                            if($items['qty'] >= $items['qty'] && $items['qty'] < $endnum[$keys]){
                                $range = range(5,10000,5);
                                $count = array_search($endnum[$keys],$range);
                                $tax += $items[$type] * $count; 
                            }
                            break;
                        }
                  }
                  // Calculation Ends
            }else{
                $tax += $items[$type];
            }
本文链接:https://www.f2er.com/3132922.html

大家都在问