什么是';6k视图';我的意思是,如何在PHP中设置数字格式

什么是';6k视图';我的意思是,如何在PHP中设置数字格式,php,Php,“6k视图”是什么意思?我如何用PHP格式化这个数字?在6k中,k表示kilo(我希望您知道),它等于6000。您将千位数替换为k,就是这样。希望有帮助:) k表示1000,因此“6k视图”=6000视图 通常,每次访问页面时,数据库中的计数器都会增加1。这只会在每个页面访问和打印时被查询 查询该值后,将其除以1000,并在数字上添加一个“k”(如果数字>1000) StackOverflow上的“6k视图”是指一个问题收到的视图数。它意味着6000个视图 如果您希望在php中格式化类似的样式编

“6k视图”是什么意思?我如何用PHP格式化这个数字?

6k
中,
k
表示
kilo
(我希望您知道),它等于
6000
。您将千位数替换为
k
,就是这样。希望有帮助:)

  • k表示1000,因此“6k视图”=6000视图
  • 通常,每次访问页面时,数据库中的计数器都会增加1。这只会在每个页面访问和打印时被查询
  • 查询该值后,将其除以1000,并在数字上添加一个“k”(如果数字>1000)

  • StackOverflow上的“6k视图”是指一个问题收到的视图数。它意味着6000个视图

    如果您希望在php中格式化类似的样式编号,请尝试以下操作

    $number = "";
    if( $value > 1000 )
    {
        $number .= floor($value / 1000) . "k";
    } else {
        $number .= $value;
    }
    echo $number . " views".
    
    显然,如果需要,您可以为m、g和t视图添加案例。

    k是和的缩写,表示千。所以6k意味着六千

    您可以使用以下函数使用除法以这种方式格式化数字:

    function format($number) {
        $prefixes = 'kMGTPEZY';
        if ($number >= 1000) {
            for ($i=-1; $number>=1000; ++$i) {
                $number /= 1000;
            }
            return floor($number).$prefixes[$i];
        }
        return $number;
    }
    
    或使用以10为底的对数和幂运算:

    function format($number) {
        $prefixes = 'kMGTPEZY';
        if ($number >= 1000) {
            $log1000 = floor(log10($number)/3);
            return floor($number/pow(1000, $log1000)).$prefixes[$log1000-1];
        }
        return $number;
    }
    
    或者如果
    $number=“6k”

    删节

    *11
    ,因为
    *10
    太明显了

    for($number = 100; $number < 100000000000000000000; $number*=11) {
       echo format($number), PHP_EOL;
    }
    
    如果您需要小数,请使用上面的方法,否则Gumbo的解决方案更紧凑。给出:

    100 1k 12k 133k 1M 16M 177M 1G 21G 235G 2T 28T 313T 3P 37P 417P 4E 50E
    

    千克是指千克还是千克meter@moustafa:hmmm:)米和克是不同的单位,只需关注千克部分。千克表示1000,就像米利表示0一样,001@moustafa一公斤。在这种情况下,kilo-views=>6000个viewsThanks,但不要忘记Gumbo的答案。它显然更通用,如果对新手来说有点神秘。(相关)实际上它为
    数组(1000,10000,100000,1000000,100000000,100000000)提供
    1k 10k 100k 500M 500M 5000m 333 g
    /** Calculate $value to $sigFigs significant figures */
    function sigFig($value, $sigFigs = 3) {
        //convert to scientific notation e.g. 12345 -> 1.2345x10^4
        //where $significand is 1.2345 and $exponent is 4
        $exponent = floor(log10(abs($value))+1);
        $significand = round(($value
            / pow(10, $exponent))
            * pow(10, $sigFigs))
            / pow(10, $sigFigs);
        return $significand * pow(10, $exponent);
    }
    
    /** Format $value with the appropriate SI prefix symbol */
    function format($value, $sigFigs = 3)
    {
        //SI prefix symbols
        $units = array('', 'k', 'M', 'G', 'T', 'P', 'E');
        //how many powers of 1000 in the value?
        $index = floor(log10($value)/3);
        $value = $index ? $value/pow(1000, $index) : $value;
        return sigFig($value, $sigFigs) . $units[$index];
    }
    
    for($number = 100; $number < 100000000000000000000; $number*=11) {
       echo format($number), PHP_EOL;
    }
    
    100 1.1k 12.1k 133k 1.46M 16.1M 177M 1.95G 21.4G 236G 2.59T 28.5T 314T 3.45P 38P 418P 4.59E 50.5E 
    
    100 1k 12k 133k 1M 16M 177M 1G 21G 235G 2T 28T 313T 3P 37P 417P 4E 50E
    
    function sigFig($value, $sigFigs = 3) {
        setlocale(LC_ALL, 'it_IT@euro', 'it_IT', 'it'); 
        $exponent = floor(log10(abs($value))+1);
        $significand = round(($value
            / pow(10, $exponent))
            * pow(10, $sigFigs))
            / pow(10, $sigFigs);
        return $significand * pow(10, $exponent);
    }
    
    function format($value, $sigFigs = 3)
    {
        $numero = $value;
    
        if ($numero > 9999) {
    
          $units = array('', 'k', 'M', 'G', 'T', 'P', 'E');
    
          $index = floor(log10($value)/3);
          $value = $index ? $value/pow(1000, $index) : $value;
          return sigFig($value, $sigFigs) . $units[$index];
        }else{
          return number_format($numero, 0, '', '.'); ;
        }
    
        //Resultados:
          //9999 -> 9.999 views
          //10000 -> 10k views
          //10200 -> 10,2k views
    }