4 回答
TA贡献1993条经验 获得超5个赞
一个简单的方法是将其分开。所以这样做看起来像这样:
<?php
function DisplayViews($views){
if($views > 0){
$display = round($views / 1000, 2);
return $display."k";
} else {
return "0";
}
}
echo DisplayViews($count); //$count should be your view count
?>
虽然上面的方法可以正常工作,但我建议您进行更多检查,以便在只有 10 个视图时不会显示 0.01k。当观看次数超过 999,999 次时也是如此。
要进行这些检查,您需要执行以下操作:
if($views <= 999){
//Display number without letter "K"
}
if($views > 999999){
//Display number with the letter "m"
}
因此,将这两者结合起来,您可以检查数字是否小于 100,还可以检查它是否大于 999,999,这样做意味着您不会显示末尾带有错误字母的数字。最终代码将如下所示:
<?php
function DisplayViews($views){
if($views > 0){
if($views <= 999){
return $views;
} elseif($views > 999999){
$display = round($views / 1000000, 2);
return $display."M";
} else {
$display = round($views / 1000, 2);
return $display."K";
}
} else {
return "0";
}
}
echo DisplayViews($count);
?>
TA贡献1712条经验 获得超3个赞
function numberAbbreviation($number) {
$abbrevs = array(12 => "T", 9 => "B", 6 => "M", 3 => "K", 0 => "");
foreach($abbrevs as $exponent => $abbrev) {
if($number >= pow(10, $exponent)) {
$display_num = $number / pow(10, $exponent);
$decimals = ($exponent >= 3 && round($display_num) < 100) ? 1 : 0;
return number_format($display_num,$decimals) . $abbrev;
}
}
}
TA贡献1811条经验 获得超4个赞
它类似于将字节大小转换为人类可读的格式。
function getReadableCount($count, $dec = 2) {
$units = ['K', 'M', 'B'];
for ($i = count($units); $i > 0; $i --) {
$base = pow(1000, $i);
if ($count >= $base) {
return round($count/$base, $dec) . $units[$i-1];
}
}
return $count;
}
echo getReadableCount($count, 1);
TA贡献1795条经验 获得超7个赞
在您的计数变量上调用此函数。
function humanize_number($input){
$input = number_format($input);
$input_count = substr_count($input, ',');
if($input_count != '0'){
if($input_count == '1'){
return substr($input, 0, -4).'k';
} else if($input_count == '2'){
return substr($input, 0, -8).'mil';
} else if($input_count == '3'){
return substr($input, 0, -12).'bil';
} else {
return;
}
} else {
return $input;
}
}
- 4 回答
- 0 关注
- 162 浏览
添加回答
举报