Функция для вывода числа с правильным склонением на PHP

PHP

Иногда бывает необходимость сделать вывод количества элементов, например, 10 товаров или 22 статьи вместо 10 товар(ов)

Для этого можно сделать небольшую функцию.

Собственно сама функция выглядит просто

function RealCount($int, $array = array()) {
	$m = substr($int,-1,1);
	$l = substr($int,-2,2);
	return $int. ' ' .((($m==1)&&($l!=11))?$array[0]:((($m==2)&&($l!=12)||($m==3)&&($l!=13)||($m==4)&&($l!=14))?$array[1]:$array[2]));
}

где

$int - количество (числовое значение)

$array - массив вариантов склонения, например array('товар', 'товара', 'товаров')

 

Пример 1

echo RealCount(22, ['статья', 'статьи', 'статей']);
// выведет 22 статьи

 

Пример 2

echo RealCount(14, ['товар', 'товара', 'товаров']); 
// выведет 14 товаров