Данила Лучинский6.0
Дизайнер, верстальщик, программист
+7 921 308-88-38 ICQ 344-00-443 Сообщение  
dan@luchinsky.ru danluchinsky Заказать сайт
Кодоводство

Поиск словоформ к числам

24 октября 2011 г.

Функция принимает целое число и отдает на его основе нужную словоформу из трех предложенных. function num_word($n,$a,$b,$c,$m=1) { $n=sprintf("%.0f",$n); $x=abs($n>9?substr($n,-2):$n); return ($m?($m==2?number_format($n,0,' ',' '):$n).' ':'').(($x%=100)>9&&$x<20||($x%=10)>4||$x==0?$c:($x==1?$a:$b)); } echo num_word(54,'метр','метра','метров'); // выдаст «54 метра» echo num_word(54,'метр','метра','метров',0); // выдаст «метра» echo num_word(5454045,'метр','метра','метров'); // выдаст «5454045 метров» echo num_word(5454045,'метр','метра','метров',2); // выдаст «5 454 045 метров» (отбивка пробелами через 3 разряда)
Метки:  PHP