所以我有一个像Youtube这样的网站视频,问题是
我想要这样的数字示例:
1,234 意见 -> 1,2 K
所以这是代码
function pm_number_format($number, $decimals = 0, $dec_point = '.', $thousands_sep = ',')
{
return number_format($number, $decimals, $dec_point, $thousands_sep);
}
function pm_compact_number_format($number)
{
if ($number < 10000)
{
return pm_number_format($number);
}
$d = $number < 1000000 ? 1000 : 1000000;
$f = round($number / $d, 1);
return pm_number_format($f, $f - intval($f) ? 1 : 0) . ($d == 1000 ? 'k' : 'M');
}
只需更改您的 if 条件并删除 1x 零,因此:
if ($number < 10000) {
return pm_number_format($number);
}
对此:
if ($number < 1000) {
return pm_number_format($number);
}
输入:
1
12
123
1234
12345
123456
1234567
12345678
123456789
输出:
1
12
123
1.2K //<--See output as you wanted
12.3K
123.5K
1.2M
12.3M
123.5M
编辑:
这是我修改的代码(如我上面描述的那样(并用于生成输出:
<?php
function pm_number_format($number, $decimals = 0, $dec_point = '.', $thousands_sep = ',') {
return number_format($number, $decimals, $dec_point, $thousands_sep);
}
function pm_compact_number_format($number) {
if ($number < 1000)
return pm_number_format($number);
$d = $number < 1000000 ? 1000 : 1000000;
$f = round($number / $d, 1);
return pm_number_format($f, $f - intval($f) ? 1 : 0) . ($d == 1000 ? 'k' : 'M');
}
$number = "";
foreach(range(1,10) as $value) {
$number .= $value;
echo pm_compact_number_format($number) . "<br />";
}
?>