PHP中的近似计数

时间:2012-04-04 06:24:41

标签: php mysql

我有一个包含文章列表的网站。我想要包含一行说明数据库中有多少篇文章,但我不希望它显示确切的数量。

我希望它向下舍入到最接近的10,所以例如对于105篇文章我希望它说“100+”等。

我将如何做到这一点?

5 个答案:

答案 0 :(得分:5)

非常简单:

floor($num / 10) * 10

docs

答案 1 :(得分:3)

要做类似的事情,你必须使用base = 10的对数并将其四舍五入

$exp= floor(log($num)/log(10));
$num = pow(10,$exp)."+";

这适用于10,100,1000 ecc,我认为最好按照你的要求行事。

答案 2 :(得分:2)

$count = 105;
$nearest10 = floor($count / 10) * 10;

答案 3 :(得分:1)

printf("%d0+", $count * 0.1);

echo substr($count, 0, -1), '0+';

roundDocs函数也支持开箱即用:

round($count, -1, PHP_ROUND_HALF_DOWN);

但缺少加号。

答案 4 :(得分:0)

首先,您需要使用MySQL的COUNT()聚合函数来获取结果总数,或类似的结果。

然后你需要使用模数运算符(%)和10作为基数,然后从主结果中扣除该值,如下所示: -

$sql = "SELECT COUNT(id) AS `total_num_records` FROM `table`";
$resource = mysql_query($sql);
$result = mysql_fetch_array($resource);
$totalRecords = $result['total_num_records'];

if ($totalRecords > 0) {
    $remainder = $totalRecords % 10;
    $showHumanFriendlyRecords = ($totalRecords - $remainder);
    $strHumanFriendlyRecords = $showHumanFriendlyRecords . "+";
}

希望它有所帮助。