я вот такой пользуюсь, давно довольно таки
function plural_form($number, $after)
{
$cases = array (2, 0, 1, 1, 1, 2);
return $after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
}пример
$num = 103;
echo plural_form($num, array('штука','штуки','штук'));выведет
103 штуки