Mail.ru
Почта
Мой Мир
Одноклассники
ВКонтакте
Игры
Знакомства
Новости
Календарь
Облако
Заметки
Все проекты
Все проекты
выход
Регистрация
Вход
Категории
Все вопросы проекта
Компьютеры, Интернет
Темы для взрослых
Авто, Мото
Красота и Здоровье
Товары и Услуги
Бизнес, Финансы
Наука, Техника, Языки
Философия, Непознанное
Города и Страны
Образование
Фотография, Видеосъемка
Гороскопы, Магия, Гадания
Общество, Политика, СМИ
Юридическая консультация
Досуг, Развлечения
Путешествия, Туризм
Юмор
Еда, Кулинария
Работа, Карьера
О проектах Mail
Животные, Растения
Семья, Дом, Дети
Другое
Знакомства, Любовь, Отношения
Спорт
Золотой фонд
Искусство и Культура
Стиль, Мода, Звезды
Полный список
Спросить
Лидеры
Поиск по вопросам
Ответы Mail
Программирование
Android
C/C++
C#
iOS
Java
JavaScript
jQuery
SQL
Perl
PHP
Python
Веб-дизайн
Верстка, CSS, HTML, SVG
Системное администрирование
Другие языки и технологии
Вопросы - лидеры.
Чем Луа лучше Пайтона и наоборот? Буду использовать в целях написания сценариев.
1 ставка
Лидеры категории
Лена-пена
Искусственный Интеллект
М.И.
Искусственный Интеллект
Y.Nine
Искусственный Интеллект
•••
Помогите доделать функцию формата php
clash borshik
Ученик
(43), на голосовании
3 года назад
Запрос склоняет верное число, 1 монета, 2 монеты, 1000 монет
$mymoney - ваше число пусть будет 5
$call = $this->getFormat($mymoney, array('монеты', 'монета', 'монет'));
каким образом я могу попровить функцию чтобы при выводе я мог получить
$call[0] - будет число монет без проблел наше число выше 5. $call [1] - текст без пробелов склооненное - будет монет, 5 монет
Function getFormat($value, $words, $show = true){
$num = $value % 100;
if($num > 19) $num = $num % 10;
$out = ($show) ? $value . ' ' : '';
switch ($num){
case 1: $out .= $words[0]; break;
case 2:
case 3:
case 4: $out .= $words[1]; break;
default: $out .= $words[2]; break;
}
return $out;
}
Голосование за лучший ответ
Сосиска в тесте
Мыслитель
(5514)
3 года назад
case 2:
case 3:
а для чего это делал?
Денис Попов
Мастер
(1162)
3 года назад
тоже самое, ток более лаконично)
function spell($num, $titles)
{
$cases = [2, 0, 1, 1, 1, 2];
return $titles[($num % 100 > 4 && $num % 100 < 20) ? 2 : $cases[min($num % 10, 5)]];
}
Похожие вопросы
$mymoney - ваше число пусть будет 5
$call = $this->getFormat($mymoney, array('монеты', 'монета', 'монет'));
каким образом я могу попровить функцию чтобы при выводе я мог получить
$call[0] - будет число монет без проблел наше число выше 5. $call [1] - текст без пробелов склооненное - будет монет, 5 монет
Function getFormat($value, $words, $show = true){
$num = $value % 100;
if($num > 19) $num = $num % 10;
$out = ($show) ? $value . ' ' : '';
switch ($num){
case 1: $out .= $words[0]; break;
case 2:
case 3:
case 4: $out .= $words[1]; break;
default: $out .= $words[2]; break;
}
return $out;
}