4 回答

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
一個(gè)簡(jiǎn)單的方法是將其分開(kāi)。所以這樣做看起來(lái)像這樣:
<?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
?>
雖然上面的方法可以正常工作,但我建議您進(jìn)行更多檢查,以便在只有 10 個(gè)視圖時(shí)不會(huì)顯示 0.01k。當(dāng)觀看次數(shù)超過(guò) 999,999 次時(shí)也是如此。
要進(jìn)行這些檢查,您需要執(zhí)行以下操作:
if($views <= 999){
//Display number without letter "K"
}
if($views > 999999){
//Display number with the letter "m"
}
因此,將這兩者結(jié)合起來(lái),您可以檢查數(shù)字是否小于 100,還可以檢查它是否大于 999,999,這樣做意味著您不會(huì)顯示末尾帶有錯(cuò)誤字母的數(shù)字。最終代碼將如下所示:
<?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貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
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貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
它類似于將字節(jié)大小轉(zhuǎn)換為人類可讀的格式。
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貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
在您的計(jì)數(shù)變量上調(diào)用此函數(shù)。
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 關(guān)注
- 206 瀏覽
添加回答
舉報(bào)