Возврат окончания слова при склонении

04.09.2017

Часто в интернет магазинах, при добавлении товара в корзину, можно увидеть неверные числительные, например, "3 товаров" или "5 товара".

Ниже приведу функцию, которая умеет возвращать верное окончание для слова.

pic1

 
/**
 * Возврат окончания слова при склонении
 *
 * Функция возвращает окончание слова, в зависимости от примененного к ней числа
 * Например: 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>';


Категории: PHP
Пометки: Работа со строками
Яндекс.Метрика