Вот дарю отполированную функцию
function ending($number, $one, $two, $five)
{
$number = $number % 100;
if ( ($number > 4 && $number < 21) || $number == 0 )
{
$ending = $five;
}
else
{
$last_digit = substr($number, -1);
if ( $last_digit > 1 && $last_digit < 5 )
$ending = $two;
elseif ( $last_digit == 1 )
$ending = $one;
else
$ending = $five;
}
return $ending;
}
На вход даем число, и отвечаем на вопросы один, два, пять. Если это товары, то:
'Товар' . ending($number, '', 'а', 'ов')
Не обязательно окончания, можно и полные слова, а есть случаи когда это необходимо, например
ending($years, 'год', 'года', 'лет')