找出最近的(n)PHP的更大倍数

时间:2011-06-23 09:24:09

标签: php logic

我要求用户被迫选择(n)数量的产品。

(n)值设置为每个可以是任意数字的产品。

客户只能购买产品数量(n)的多个产品数量。

假设if(n)为5,用户输入的数量为4,并说“添加到购物车”。我必须自动将该产品的数量添加为5

如果用户输入6作为数量,那么我必须添加该产品的10数量。

我怎么做?

我没有得到应该在这里应用的逻辑。

5 个答案:

答案 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