Функция для правильных окончаний существительных

phpИзменяем окончания в именах существительных во множественном числе. Меня реально стало напрягать делать вывод количество товаров в виде “В корзине товаров: 1”, захотелось чего-то более человечного.

В принципе, думаю, суть ясна: 1 яблоко, 2 яблока, 5 яблок и так далее.

функция

function getNumEnding($number,$array,$endingArray)
{
	$lenofnum=strlen($number);
	$rev=strrev($number);

	if (!in_array($number,$array)) {$lenofnum=1;}

	$rev=substr($rev,0,$lenofnum);
	$rev=strrev($rev);
	foreach($array as $key=>$item)
	{
		if ($rev==$item) 
		{
			$ending=$endingArray[$key];
		}
	}

    return $ending;
}

Рассмотрим работу функции:
getNumEnding($number,$array,$wordsArray)
$number – само число, существительное которого нужно привести к нормальному виду
$array – массив с числами, для которых нужно обрабатывать определенные слова из следующего массива
$wordsArray – массив со словами в такой же очередности, как и цифры в предыдущем массиве

пример использования

$nums=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,0);
$words = array('товар','товара','товара','товара','товаров','товаров','товаров','товаров','товаров','товаров','товаров','товаров','товаров','товаров','товаров');
$numofprods = 14;   
   $res = getNumEnding($numofprods,$nums,$words);
		if ($numofprods>0)
		{
		        echo "В вашей корзине ".$numofprods.' '.$res;
		}
		else
		{
		        echo 'В вашей корзине нет товаров';	
		}

получаем “В вашей корзине 14 товаров”