PHP -得到最接近的数字给定的某个数字


PHP - get closest number given a certain number?

我正在修改OpenCart的一个产品过滤器,以按价格过滤产品的输入/输出。我所做的是获得属于某个类别的所有产品,并提取它们的价格,将它们放在滑块中,但这一点也不优雅或"专业",我想编写一个适当的解决方案。

假设我有以下价格:125、270、517、1680和14790。我想做的(理想情况下)是获得最高的数字(在这个简短的例子中是14790),然后从中得到类似"15000"的东西,这样我就可以将它除以一个给定的因子(比如100),并将其放入滑块中。

是否有一个PHP函数来做这种计算?

如果我理解你的问题,你要求四舍五入到最接近的100,没有一个特定的函数,但有一点数学,你可以四舍五入到最接近的100,像这样:

$price = ceil($price / 100) * 100;
使用:

$price = ceil($price / 1000) * 1000;

将四舍五入到最接近的1000

获取最大值,然后四舍五入到最接近的千位?

<?php
$largest = max(125, 270, 517, 1680, 14790);
$nearest = ceil($largest / 1000) * 1000;

您可以遍历这些数字,记住其中的最大值。这是常见的编码实践。(好吧,确实有一个max()函数,echo max(1,3,5,6,7);//7

然后你可以用最大的数除以你的因子,把你得到的整数加1,然后再乘以这个因子,就可以了

just do: x=floor(14790/100);floor函数返回下一个最小的整数值