Правильные окончания для количества

Ещё одна функция из разряда «маленький полезный пустячок». Задача — подставить правильное окончание для количества чего-нибудь. К примеру, 1 комментарий, 2 комментария и т.п.

function wordsSpan($n = 0, $words) {
    $words    = explode('|', $words);
    $n        = intval($n);
    return ($n % 10==1 && $n % 100!=11) ? $words[0] . $words[1] : ($n % 10>=2 && $n % 10<=4 && ($n % 100<10 || $n % 100>=20) ? $words[0] . $words[2] : $words[0] . $words[3]);
}

foreach ($i in range(1, 100))
   echo $i . " " . wordSpan($i, "комметари|й|я|ев");