Часто в интернет магазинах, при добавлении товара в корзину, можно увидеть неверные числительные, например, "3 товаров" или "5 товара".
Ниже приведу функцию, которая умеет возвращать верное окончание для слова.
/**
* Возврат окончания слова при склонении
*
* Функция возвращает окончание слова, в зависимости от примененного к ней числа
* Например: 5 товаров, 1 товар, 3 товара
*
* @param int $value - число, к которому необходимо применить склонение
* @param array $status - массив возможных окончаний
* @return mixed
*/
function getWordEndings($value = 1, $status = array('', 'а', 'ов'))
{
$aTMP = array(2, 0, 1, 1, 1, 2);
return $status[($value%100 > 4 && $value % 100 < 20)? 2 : $aTMP[($value % 10 < 5) ? $value % 10:5]];
}
function demo($value)
{
return $value. ' товар'. getWordEndings($value);
}
echo demo(1) . '<br>';
echo demo(3) . '<br>';
echo demo(5) . '<br>';