скидка по формуле 2×1 3×2 и т. д. Переполнение стека

Я застрял, думая о том, как это сделать:
У меня есть корзина для покупок, и я хочу создать купонную систему со скидкой 2×1, 3×2, 5×3 и т. Д.

Но я не могу решить эту проблему, чтобы получить формулу и показать общую стоимость после применения купона.

Например: цена товара: 5 долларов США, и у меня есть купон 2×1:

If I buy 2 items: TOTAL: $5,00 usd (2x1)
If I buy 3 items: TOTAL: $10,00 usd (2x1 + 1)
If I buy 4 items: TOTAL: $10,00 usd (2x1 + 2x1)

Точно так же. Цена товара: 5 долларов США. и теперь у меня есть купон 3х1.

If I buy 2 items: TOTAL: $10,00 usd (3x1 NOPE!)
If I buy 3 items: TOTAL: $5,00 usd (3x1)
If I buy 4 items: TOTAL: $10,00 usd (3x1 + 1)
If I buy 5 items: TOTAL: $15,00 usd (3x1 + 2)
If I buy 6 items: TOTAL: $10,00 usd (3x1 + 3x1)
If I buy 7 items: TOTAL: $15,00 usd (3x1 + 3x1 + 1)

Как получить полную цену, используя купон в PHP?

0

Решение

Другое решение:

function calc($item_count, $unit_price, $coupon)
{
list($need, $paid) = explode('x', $coupon);
$left = $item_count % $need;
return $unit_price * (intval($item_count / $need) * $paid + $left);
}
0

Другие решения

Не проверял, но эта функция должна работать:

function discount($i_boughtitems,$i_necessaryitems,$i_discountitems,$i_priceofitem){
$i_priceofcart = 0;

while($i_boughtitems => $i_necessaryitems){
$i_priceofcart = $i_priceofcart+($i_priceofitem *$i_necessaryitems);
$i_boughtitems = $i_boughtitems - $i_necessaryitems;
}
$i_priceofcart =  $i_priceofitem * $i_boughtitems;
return $i_priceofcart;

}

0