Допустим имею данное число: 3985. Как мне её превратить в данную строку: 3,9К ?
Ещё вариант в коллекцию:
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: Добавил условие для предотвращения нотисов.
Решение:
function views($value)
{
if ($value >= 1000) return round($value / 1000, 1).'K';
else return $value;
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости