Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите доделать функцию формата 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)]];
}
Похожие вопросы