Intereting Posts
Что мне не хватает из моих тестовых данных wp-api wordpress? Получение AJAX Div каждые 60 секунд Отправка почты (в Localhost) с помощью библиотеки электронной почты CodeIgniter из gmail не работает Преобразование String в массив в JavaScript Аутентификация API-интерфейса WordPress REST без страницы входа в систему обработка сеанса в android при входе на сервер в php получение HTTP-ответа POST-ответа из файла PHP (отправка POSTS работает нормально, это получение, которое я не могу понять) Ранжирование значений столбцов в базе данных MySQL Удалить все файлы внутри папки, но последние? Показать диалоговое окно «Сохранить как» при загрузке файла из iframe через PHP Считывание строк в PHP Предупреждение: mysql_query (): доступ запрещен для пользователя 'admin' @ 'localhost' (с использованием пароля: НЕТ) Работа со старыми датами для нескольких столбцов Я запутался с Memcache и Memcached vs php5-memcache Используйте регулярное выражение для извлечения целого из url в строке с php

PHP: Экспресс-номер в словах

Есть ли функция, которая выражает любое заданное число в словах?

Например:

Если число равно 1432, то эта функция вернет «Одна тысяча четыреста тридцать две».

Solutions Collecting From Web of "PHP: Экспресс-номер в словах"

Используйте класс NumberFormatter, который находится в php;)

$f = new NumberFormatter("en", NumberFormatter::SPELLOUT); echo $f->format(1432); 

Это вывело бы «тысячу четыреста тридцать два»,

Вы можете сделать это многими способами, о которых я упоминаю здесь двумя способами, используя класс NumberFormatter, как указано в ответе Martindilling (если у вас есть версия php 5.3.0 или выше, а также расширение PECL 1.0.0 или выше) или с использованием следующих пользовательских функция.

 function convertNumberToWord($num = false) { $num = str_replace(array(',', ' '), '' , trim($num)); if(! $num) { return false; } $num = (int) $num; $words = array(); $list1 = array('', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen' ); $list2 = array('', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety', 'hundred'); $list3 = array('', 'thousand', 'million', 'billion', 'trillion', 'quadrillion', 'quintillion', 'sextillion', 'septillion', 'octillion', 'nonillion', 'decillion', 'undecillion', 'duodecillion', 'tredecillion', 'quattuordecillion', 'quindecillion', 'sexdecillion', 'septendecillion', 'octodecillion', 'novemdecillion', 'vigintillion' ); $num_length = strlen($num); $levels = (int) (($num_length + 2) / 3); $max_length = $levels * 3; $num = substr('00' . $num, -$max_length); $num_levels = str_split($num, 3); for ($i = 0; $i < count($num_levels); $i++) { $levels--; $hundreds = (int) ($num_levels[$i] / 100); $hundreds = ($hundreds ? ' ' . $list1[$hundreds] . ' hundred' . ' ' : ''); $tens = (int) ($num_levels[$i] % 100); $singles = ''; if ( $tens < 20 ) { $tens = ($tens ? ' ' . $list1[$tens] . ' ' : '' ); } else { $tens = (int)($tens / 10); $tens = ' ' . $list2[$tens] . ' '; $singles = (int) ($num_levels[$i] % 10); $singles = ' ' . $list1[$singles] . ' '; } $words[] = $hundreds . $tens . $singles . ( ( $levels && ( int ) ( $num_levels[$i] ) ) ? ' ' . $list3[$levels] . ' ' : '' ); } //end for loop $commas = count($words); if ($commas > 1) { $commas = $commas - 1; } return implode(' ', $words); } 

В случае использования Yii2 вы можете сделать это так просто, как следующее:

 $sum = 100500; echo Yii::$app->formatter->asSpellout($sum); 

В этом отпечатке написано $sum на языке вашего приложения.

Ссылка на документы