Генерация корректных суффиксов, окончаний слов (словоформ)
Часто нам приходится менять форму какого то слова, в зависимости от числа, стоящего перед ним. Например:
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 комментариев"
Ответ не помог? Задайте вопрос
тех. поддержке