getrix
Долго гуглил, но не нашел сам, так что PHP-программистам будет полезно.
Великий и могучий русский язык не так прост местами, как английский. Например простой алгоритм, если больше 1, то надо добавить окончание "s" к подлежащему у нас не прокатит. Так вот и родилась этот кусок кода.
Функция изменяет форму слова в зависимости от количества. Например: 1 комментарий, 2 комментария, 5 комментариев, 1152 комментария.

Пример использования:
echo ModifyCountWord(32, array("комментарий","комментария","комментариев"));
Выведет:
32 комментария.

Первый параметр - количество, второй - массив с различными формами слова при разном количестве:
[0] => одна единица (напр. "комментарий")
[1] => две единицы (напр. "комментария")
[2] => пять единиц (напр. "комментариев")

function ModifyCountWord($count,$words)
{
/*
* (c) Sergey S Petrenko, spetrenko@me.com
* *0 => комментариев
* *1 => комментарий 1 21 31 101 151
* ?05-?19 => комментариев 12 112 212
* *5-*9=> комментариев5 15
* *2-4 => комментария 2 22 32 42 52 102 152
*
* array("комментарий","комментария","комментариев")
*/
$count="".$count;
$count_length=strlen($count);
$last_two=$count[$count_length-2].$count[$count_length-1];
$last_two_int=intval($last_two);
if($count[$count_length-1]=="0") return $words[2];
elseif($last_two!=="11" && $count[$count_length-1]=="1") return $words[0];
elseif($last_two_int>=5 && $last_two_int<=19) return $words[2];
elseif(intval($count[$count_length-1])>=5 && intval($count[$count-length-1])<=9) return $words[2];
elseif(intval($count[$count_length-1])>=2 && intval($count[$count-length-1])<=4) return $words[1];
}