Как отформатировать числа в php от 1000 до 1k - PullRequest
2 голосов
/ 16 января 2011

Я пытаюсь отформатировать вывод чисел в php.У меня есть количество сообщений, которые отображаются, а рядом с каждым пользователем - общее количество сообщений.Но это показывает фактическую сумму, я хочу, чтобы она отображалась в более коротком формате, на самом деле, точно так же, как здесь, в SO с репутацией

есть идеи?

Ответы [ 3 ]

13 голосов
/ 16 января 2011
<?
$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 голосов
/ 18 июня 2012
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 голосов
/ 26 сентября 2017

Используйте это Сократите длинные цифры до 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';
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...