我有一个我正在开发的购物车,需要找出一种方法来将折扣率与数量相匹配。
折扣率适用于
因此2-4项将获得2项折扣,5-9项将获得5项折扣。 10件商品可获得10件商品折扣。
让我们说客户购买了7件商品。该代码需要应用5个项目的折扣率。
我想到了一个for循环,然而它自动递增值for (int i = 0; i < 5; i++)
;我不确定如何将折扣率与此相关联,并以正确的折扣率停止变量。
我还看到了像这样的代码.. (quantity * unitcost) - (int (quantity / 2) * (unitcost / 2))
,它只对每一个项目应用特定的折扣,以便无法工作。
我搜索谷歌这个,但一直看到如何在特定购物车中进行数量折扣的例子。
$quantity = quantity of items in cart
如果有办法将折扣设置为数组并匹配最接近最佳场景的方式,除非有人知道更好的方式。
$discount = array();
$Discount[1] = 0 percent
$Discount[2] = 5 percent
$Discount[5] = 10 percent
$Discount[10] = 20 percent
我以这些折扣为例。折扣实际上将从产品数据库中提取,因为不同的商品可以有不同的折扣率。
我希望我能展示一些部分正常运行的代码,但我对这个代码感到茫然。任何帮助将不胜感激。
答案 0 :(得分:1)
简单使用if和elseif可以轻松实现。
if ($quantity >= 10) {
$discount = 20;
} elseif ($quantity >= 5) {
$discount = 10;
} elseif ($quantity >= 2) {
$discount = 5;
} else {$discount = 0;}
可以使用从数据库中检索的动态折扣和数量来处理相同的逻辑。
并根据您使用数据库中的值进行更新来执行此操作:
$input = array("1"=>"0","2"=>"5","5"=>"10","10"=>"20");
$reversed = array_reverse($input,true);
foreach ($reversed as $qtydiscount => $discount) {
if ($quantity >= $qtydiscount) {
break;
}
}
echo $discount;