Как сократить отображаемое число в PHP?

215
26 ноября 2017, 15:22

Допустим имею данное число: 3985. Как мне её превратить в данную строку: 3,9К ?

Answer 1

Ещё вариант в коллекцию:

function format_number($input) {
    $integer = (int)log($input, 1000);
    $float = round($input / pow(1000, $integer), 1);
    $letters = ['К', 'М', 'Млрд'];
    $k = --$integer;
    return $float . (isset($letters[$k]) ? $letters[$k] : '');
}

Примеры использования:

echo format_number(7);// 7
echo format_number(78);// 78
echo format_number(789);// 789
echo format_number(7899);// 7.9К
echo format_number(78991);// 79К
echo format_number(789919);// 789.9К
echo format_number(7899191);// 7.9М
echo format_number(78991911);// 79М
echo format_number(789919119);// 789.9М
echo format_number(7899191191);// 7.9Млрд
echo format_number(78991911910);// 79Млрд

UPD: Добавил условие для предотвращения нотисов.

Answer 2

Решение:

function views($value)
{
    if ($value >= 1000) return round($value / 1000, 1).'K';
    else return $value;
}
READ ALSO
Как сделать 3-х уровневую реф-систему на PHP Mysql?

Как сделать 3-х уровневую реф-систему на PHP Mysql?

Приветствую, подскажите как построить логику 3-х уровневой реферальной системы на PHP и Mysql, например если был переход по реф ссылке в куки записывается...

214
Изменить текст QTextEdit при клике по нему в Qt

Изменить текст QTextEdit при клике по нему в Qt

Пишу калькулятор на С++ в Qt CreatorХочу сделать так, чтобы при клике по текстовому полю (когда там уже введен текст) старый текст убирался и ставился...

247
Не читает данные из Edit Control

Не читает данные из Edit Control

Создаю EditControl, добавляю туда переменную(double)Задаю в скобках значение по умолчанию

227
Map-Reduce на C++ с использованием std::async

Map-Reduce на C++ с использованием std::async

Пытаюсь написать MapReduce

261