Закрыть
 

Скидка 30% только для веб разработчиков!
Вы зашли к нам с Яндекса? Только для посетителей с Яндекса действует промо код на скидку в 10%!
Устали от текущего хостера? Мы перенесем сайты бесплатно и добавим +50% к первому платежу
БЕССРОЧНЫЙ SSL сертификат! Получи его НАВСЕГДА, всего за 800 руб. !
Для всех доменов. Автоматическое продление. Выделенный Айпи(IP) покупать уже не нужно!

Отличное место для Вашего сайта
Более 17 лет с Вами
О компании
Документы
Оформление заказа - Регистрация
Партнерская программа
Ускорение сайта
Тарифные планы | Домены | VPS | Вечный тариф
База знаний



Раздел: Сниппеты PHP
Генерация корректных суффиксов, окончаний слов (словоформ)

Часто нам приходится менять форму какого то слова, в зависимости от числа, стоящего перед ним. Например:

1 комментарий
15 комментариев

Как добиться динамической генерации корректной словоформы, суффикса?


function getCorrectWord($number, $endingArray)
{	
	// $number - число от которого зависит окончание нужного нам слова
	// $endingArray - массив форм слова с разными окончаниями

 $number = $number % 100;
 if ($number>=11 && $number<=19) 
 {
        $ending=$endingArray[2];
 }
 else 
 {
       $i = $number % 10;
       switch ($i)
               {
                   case (1): $ending = $endingArray[0]; break;
                   case (2):
                   case (3):
                   case (4): $ending = $endingArray[1]; break;
                   default: $ending=$endingArray[2];
               }
}
            return $ending;
        }



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

$comments = 15;
echo $comments .' '. getCorrectWord($comments,array('комментарий','комментария','комментариев')); // выведет: "15 комментариев"





Ответ не помог? Задайте вопрос тех. поддержке
Все о редиректах
Отзывы от клиентов