2011-01-16 12 views
2

Imの数値をPHPで書式設定しようとしています。私は表示されている投稿の量があり、各ユーザーの横に投稿の合計です。しかし、それは実際の金額を示しています、私はそれがより短い形式でそれを実際に表示することを望んでいるように、ここで彼らは評判でPHPで数値を書式設定する方法1000〜1k

というアイデアを持っているのと同じですか?

+3

はこれを参照してください使用して、あなたが始める必要があります。http://stackoverflow.com/questions/4371059/shorten-long-numbers-to-kmb/ 4371114#4371114 – BoltClock

+0

ちょっと@bolt!あなたが私を覚えて嬉しい – Sin

+0

:D – BoltClock

答えて

13
<? 
$numbers = array(100,1000,15141,3421); 


function format_number($number) { 
    if($number >= 1000) { 
     return $number/1000 . "k"; // NB: you will want to round this 
    } 
    else { 
     return $number; 
    } 
} 


foreach($numbers as $number) { 
    echo $number . " : " . format_number($number); 
    echo "\n"; 
} 
2
function count_format($n, $point='.', $sep=',') { 
    if ($n < 0) { 
     return 0; 
    } 

    if ($n < 10000) { 
     return number_format($n, 0, $point, $sep); 
    } 

    $d = $n < 1000000 ? 1000 : 1000000; 

    $f = round($n/$d, 1); 

    return number_format($f, $f - intval($f) ? 1 : 0, $point, $sep) . ($d == 1000 ? 'k' : 'M'); 
} 
0

この Shorten long numbers to K/M/B?

function number_format_short($n, $precision = 1) { 
    if ($n < 900) { 
     // 0 - 900 
     $n_format = number_format($n, $precision); 
     $suffix = ''; 
    } else if ($n < 900000) { 
     // 0.9k-850k 
     $n_format = number_format($n/1000, $precision); 
     $suffix = 'K'; 
    } else if ($n < 900000000) { 
     // 0.9m-850m 
     $n_format = number_format($n/1000000, $precision); 
     $suffix = 'M'; 
    } else if ($n < 900000000000) { 
     // 0.9b-850b 
     $n_format = number_format($n/1000000000, $precision); 
     $suffix = 'B'; 
    } else { 
     // 0.9t+ 
     $n_format = number_format($n/1000000000000, $precision); 
     $suffix = 'T'; 
    } 
関連する問題