如何在PHP中将一个数字格式化为2.5K(如果是一千)?就像Facebook


How to format a number as 2.5K if a thousand in PHP? Like Facebook

我需要以等于一千的1K格式显示页面浏览量值,或者1.1K、1.2K、1.9K等,如果不是偶数千,否则如果低于千,则显示正常的500、100、250等,使用PHP格式化数字?

我正在使用:--

function count_number($n) {
    // first strip any formatting;
    $n = (0+str_replace(",","",$n));
    // is this a number?
    if(!is_numeric($n)) return false;
    // now filter it;
    if($n>1000000000000) return round(($n/1000000000000),1).'T';
    else if($n>1000000000) return round(($n/1000000000),1).'G';
    else if($n>1000000) return round(($n/1000000),1).'M';
    else if($n>1000) return round(($n/1000),1).'K';
    return number_format($n);
}

但它不能正常工作

如果我的页面浏览了22454次,它会显示2.5k,如果2990会显示3k。。。

如何解决这个问题

我想显示类似-->如果页面访问2454->如何显示2.4k,如果2990->2.9k,如果3000->3k等

Plz帮我…


感谢@MonkeyZeus

现在它完成了

function kilo_mega_giga($n) {    
if($n >= 1000 && $n < 1000000)
{
    if($n%1000 === 0)
    {
        $formatted = ($n/1000);
    }
    else
    {
        $formatted = substr($n, 0, -3).'.'.substr($n, -3, 1);
         if(substr($formatted, -1, 1) === '0')
         {
           $formatted = substr($formatted, 0, -2);
         }
    }
    $formatted.= 'k';
} else 
if($n >= 1000000 && $n < 1000000000)
{
    if($n%1000000 === 0)
    {
        $formatted = ($n/1000000);
    }
    else
    {
        $formatted = substr($n, 0, -6).'.'.substr($n, -6, 1);
         if(substr($formatted, -1, 1) === '0')
         {
           $formatted = substr($formatted, 0, -2);
         }
    }
    $formatted.= 'M';
} else 
if($n >= 1000000000 && $n < 1000000000000)
{
    if($n%1000000000 === 0)
    {
        $formatted = ($n/1000000000);
    }
    else
    {
        $formatted = substr($n, 0, -9).'.'.substr($n, -9, 1);
         if(substr($formatted, -1, 1) === '0')
         {
           $formatted = substr($formatted, 0, -2);
         }
    }
    $formatted.= 'G';
} else
if($n >= 0 && $n < 1000)
{ 
    $formatted= $n;
} 
return $formatted;
}

您可以使用它来计算数千。你也可以用这个公式计算出数百万美元的公式。

$n = 2000;
$formatted = '';
if($n >= 1000 && $n < 1000000)
{
    if($n%1000 === 0)
    {
        $formatted = ($n/1000);
    }
    else
    {
        $formatted = substr($n, 0, -3).'.'.substr($n, -3, -2);
        if(substr($formatted, -1, 1) === '0')
        {
            $formatted = substr($formatted, 0, -2);
        }
    }
    $formatted.= 'k';
}
echo $formatted;

此外,请始终使用大括号。将来你会感谢现在的你。

大于10000 的数字怎么办

function facebookFormattter($digit) {
    if ($digit >= 1000000000) {
        return round($digit/ 1000000000, 1). 'G';
    }
    if ($digit >= 1000000) {
        return round($digit/ 1000000, 1).'M';
    }
    if ($digit >= 1000) {
        return round($digit/ 1000, 1). 'K';
    }
    return $digit;
}
相关文章: