我正在尝试将一些代码放入循环中。我想实现的是,每增加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];
}