2012-10-24 22 views
8

編輯:下面的功能現在也簡稱正確,執行@Asad的解決方案PHP數量慣用縮寫字的人

嗨,我目前工作的一個類似按鈕,我已經得到了所有工作很好的基本功能,但是我已經開始數字縮寫代碼,因爲我無法弄清楚如何使縮寫更加精確。

我有一個數字,例如1000,1230,1500,154000,1500000,1000000

我想用縮寫格式化它們。即

,如果它是一千,那麼1K,1.1K,2K,10K,10.5K等等

等爲數萬,數十萬,數百萬,等等

目前我有以下功能,但它不夠具體:

function abreviateTotalCount($value) 
{ 

    $abbreviations = array(12 => 'T', 9 => 'B', 6 => 'M', 3 => 'K', 0 => ''); 

    foreach($abbreviations as $exponent => $abbreviation) 
    { 

     if($value >= pow(10, $exponent)) 
     { 

      return round(floatval($value/pow(10, $exponent))).$abbreviation; 

     } 

    } 

} 

在此先感謝!

+1

這是一個非常好的解決方案,你是什麼意思'不夠具體'? –

+0

你目前的代碼有什麼問題?不行嗎? –

+0

@Asad嗨,不幸的是,它只返回我想要的縮寫的整個版本。即1k,2k,但是沒有任何介於 –

回答

5

如果你想保留小數,使用floatval代替INTVAL:

return round(floatval($value/pow(10, $exponent)),1).$abbreviation; 

得到浮點表示和舍入到1位小數。

+0

這樣做。謝謝,它會允許我接受答案 –