簡體   English   中英

“6k視圖”是什么意思,我如何在PHP中格式化數字

[英]What Does '6k views' mean and how can I format the number in PHP

“6k視圖”是什么意思,我如何在PHP中格式化這個數字?

kKilo前綴的縮寫,意思是千。 所以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;
}

StackOverflow上的“6k views”是指問題收到的觀看次數。 這意味着6000次觀看。

如果你想在php中格式化類似的樣式編號,那么嘗試類似的東西

$number = "";
if( $value > 1000 )
{
    $number .= floor($value / 1000) . "k";
} else {
    $number .= $value;
}
echo $number . " views".

顯然,如果需要,您可以為m,g和t視圖添加案例。

摘自http://tamlyn.org/2008/12/formatting-bytes-with-significant-figures-in-php/

/** 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];
}

*11因為*10太明顯了

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 

如果你需要小數,使用上面的,否則Gumbo的解決方案更緊湊。 得到:

100 1k 12k 133k 1M 16M 177M 1G 21G 235G 2T 28T 313T 3P 37P 417P 4E 50E
$number="6000";
$val=($number/1000)."k";
//= 6k

或者如果$number="6k";

echo str_replace("k","000",$number);

6kk表示kilo (我希望你知道)等於6000 你用k代替千元,就是這樣。 希望有幫助:)

  1. k表示1000,所以'6k views'= 6000個視圖。
  2. 通常,在每次訪問頁面時,數據庫中的計數器增加1.這只是在每個頁面訪問和打印時查詢。
  3. 在查詢該值后,將其除以1000並在數字上添加“k”(如果數字> 1000)。
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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM