php: склонение числительных

Функция для склонения числительных:

 
function declOfNum($number, $titles) {
    $cases = array (2, 0, 1, 1, 1, 2);
    return $titles[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ];
}
 

Пример использования:

 
$titles = array( 'вопрос', 'вопроса', 'вопросов' ); 
 
for ( $i = 0; $i < 10000; $i++ ) {
	echo 'ответили на ' . $i . ' ' . declOfNum($i, $titles);
}
 

Результат под катом

Выведет:

ответили на 0 вопросов
ответили на 1 вопрос
ответили на 2 вопроса
ответили на 3 вопроса
ответили на 4 вопроса
ответили на 5 вопросов
ответили на 6 вопросов
ответили на 7 вопросов
ответили на 8 вопросов
ответили на 9 вопросов
ответили на 10 вопросов
ответили на 11 вопросов
ответили на 12 вопросов
ответили на 13 вопросов
ответили на 14 вопросов
ответили на 15 вопросов
ответили на 16 вопросов
ответили на 17 вопросов
ответили на 18 вопросов
ответили на 19 вопросов
ответили на 20 вопросов
ответили на 21 вопрос
и т.д.

Взято отсюда

Оставить комментарий

Введите код с картинки


Поля обозначенные звездочкой (*) обязательны для заполнения