首页 > 解决方案 > 如果数字太大,请使用缩写

问题描述

我正在创建一个社交网站。我想向人们展示他们喜欢的总数、关注者和他们关注的人。现在的方式,它显示了喜欢、关注者和关注的总数,如果它太长,它会超过页面上的其他单词。

那么如何使用缩写,如:K(千)、m(百万)等?这就是我现在所拥有的。

$stmt = $con->prepare('SELECT name, username, num_likes, profile_pic FROM users WHERE user_closed = "0" 
    ORDER BY num_likes DESC LIMIT 100');
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($name, $username, $num_likes, $profile_pic);

function convert($num_likes)
{
    $num_likes = $number / 1000;
    return $num_likes . 'k';
}

这就是我显示结果的方式:<p> Total Likes: " . $num_likes ."</p>

我尝试了以下方法:

PHP 计数大约千到 K 样式计数,如 facebook Share 。. . Twitter按钮等

将长数字缩短为 K/M/B?

PHP 计数大约千到 K 样式计数 Facebook 分享

标签: phpmysqlfunction

解决方案


首先,你的功能:

function convert($num_likes)
{
    $num_likes = $number / 1000;
    return $num_likes . 'k';
}

将无法按预期工作,因为它转换为相反的方式:) 这是更新版本:

function convert($num_likes)
{
    $number = $num_likes / 1000;
    return $number . 'k';
}

第二点。您应该在某处使用该功能...例如您的行(实际上只是其中的一部分):

<p> Total Likes: " . $num_likes ."</p>

一定是:

<p> Total Likes: " . convert($num_likes) ."</p>

最后,使用这个答案,我们可以将convert函数修改为:

function convert($n) {
    if ($n < 1000) {
        $n_format = number_format($n);
    } else if ($n < 1000000) {
        // Anything less than a million
        $n_format = number_format($n / 1000, 3) . 'k';
    } else if ($n < 1000000000) {
        // Anything less than a billion
        $n_format = number_format($n / 1000000, 3) . 'M';
    } else {
        // At least a billion
        $n_format = number_format($n / 1000000000, 3) . 'B';
    }
    return $n_format;
}

现在我们可以将所有数字转换为数十亿。

游乐场:单击


推荐阅读