我要求用户被迫选择(n)数量的产品。
(n)值设置为每个可以是任意数字的产品。
客户只能购买产品数量(n)的多个产品数量。
假设if(n)为5,用户输入的数量为4
,并说“添加到购物车”。我必须自动将该产品的数量添加为5
。
如果用户输入6
作为数量,那么我必须添加该产品的10
数量。
我怎么做?
我没有得到应该在这里应用的逻辑。
答案 0 :(得分:10)
$entered_quantity = 6;
$suppose_n = 5;
$quantity = ceil($entered_quantity / $suppose_n) * $suppose_n;
echo $quantity;
打印10
答案 1 :(得分:3)
这不是特定于PHP的; 你想做的就是计算。
上限(q / n)* n
其中q是用户的数量, n是多重性
答案 2 :(得分:2)
您可以尝试在除以给定的n
e.g:
$n = 5;
$amount = 6; // This would be the input, so replace the 6 with a $_POST/$_GET/etc.
$batches = floor($amount / $n);
$rest = $amount % $n;
if ($rest > 0) {
$batches += 1;
// You could give the user feedback here that they didn't put in a full multiple of $n
}
// $batches now contains the right amount of batches, so to get the total:
$total = $batches * $n;
当然,这可以浓缩很多,但这可能会更好地概述发生的事情:)。
答案 3 :(得分:1)
尝试以下功能。
function getNextMultipleOfFive($n) {
$tmp=explode('.',($n/5));
if($tmp[1]) {
return ($tmp[0]+1)*5;
}
return $tmp[0]*5;
}
答案 4 :(得分:0)
使用do ... while循环:
$q = 6; // quantity by user input
$n = 5; // per purchace amount
$i = 0;
if ($q > 0)
{
do
{
$i += $n;
}
while ($i <= $q);
}
echo $i; // 10
注意:如果$q
&gt;&gt;不是很有效$n