/ Published in: PHP
URL: http://huze.ru
Склонение любых чисел в правильную форму.
Expand |
Embed | Plain Text
/** * Выбор нужного падежа числа * * Пригодится для локализации любых скриптов. Лучше подключать через * <code> * if ( ! function_exists ( "NumToRu" ) ) * { * * } * </code> * @param int $number Число, требующее падежа * @param str $one Форма для mod 10 == 1 и != 11 * @param str $little Форма для mod 10 == 2, 3, 4 и != 12, 13, 14 * @param str $many Форма для остальных случаев * @return string Нужная форма падежа */ function NumToRu ( $number, $one, $little, $many ) { if ( $number % 100 > 10 && $number % 100 < 15 ) { return $many; } if ( $number % 10 == 1 ) { return $one; } if ( $number % 10 > 1 && $number %10 < 5 ) { return $little; } return $many; }
Comments
Subscribe to comments
You need to login to post a comment.

$nums = array ( 1, 2, 6, 11, 21, 102 ); foreach ( $nums as $num ) { echo $num . " " . NumToRu ( $num, "ложка", "ложки", "ложек" ) . "\n"; }
outputs:
1 ложка 2 ложки 6 ложек 11 ложек 21 ложка 102 ложки