4 回答

TA貢獻1993條經驗 獲得超6個贊
一個簡單的方法是將其分開。所以這樣做看起來像這樣:
<?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 關注
- 208 瀏覽
添加回答
舉報