如何在多个条件下将变量值增加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美元,依此类推…

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

$tax=10;

$j=5;

$k=1;对于($i=0;$i<$j;$i++({

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

}$j=$j+5;

echo">
"$税*$k。">
";

$k=$k+1;

对于($i=5;$i<$j;$i++({

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

}$j=$j+5;

echo">
"$税*$k。">
";

$k=$k+1;

对于($i=10;$i<$j;$i++({

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

}

$j=$j+5;

echo">
"$税*$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];
}

相关内容

  • 没有找到相关文章

最新更新