如何解决如果数字太大,请使用缩写
我正在创建一个社交网站。我想向人们展示喜欢他们的总人数,关注者和关注的人。现在的样子,它显示了喜欢,关注者和关注对象的总数,如果太长,它将覆盖页面上的其他单词。
那么我该如何使用缩写: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 Count round thousand to a K style count like facebook Share . . . Twitter Button ect
Shorten long numbers to K/M/B?
PHP Count round thousand to a K style count Facebook Share
解决方法
首先,您的功能:
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>
最后,使用this answer,我们可以将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;
}
现在我们可以将所有数字转换为数十亿。
游乐场:click。
,也许是这样,
如果您不需要大分数,请使用round()。
<?php
function convert(int $number)
{
if ($number >= 1E9) {
return round($number / 1E9,2).'b';
} else if ($number >= 1E6) {
return round($number / 1E6,2).'m';
} else if ($number >= 1E3) {
return round($number / 1E3,2).'k';
}
return $number;
}
echo convert(1000000000).PHP_EOL; // 1b
echo convert(1000000).PHP_EOL; // 1m
echo convert(1200).PHP_EOL; // 1.2k
echo convert(1234).PHP_EOL; // 1.23k
echo convert(100).PHP_EOL; // 100
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。