Ниже приведен код для функции, которая позволяет выставлять осмысленные окончания для существительных с числительными, например таких:
if (!function_exists('plural')) {
/**
* Функция для получения правильных окончаний слов на php
*
* @param int $number Число, к которому привязываемся
* @param array $titles Массив слов для склонения
* @return string
**/
function plural($number, array $titles) {
$cases = array(2, 0, 1, 1, 1, 2);
return sprintf($titles[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ], $number);
}
}
Пример использования:
$hour = 1;
echo $this->pluralTuning($hour, array("Остался %d час", "Осталось %d часа", "Осталось %d часов"));
// результат: Остался 1 час
$hour = 5;
echo $this->pluralTuning($hour, array("Остался %d час", "Осталось %d часа", "Осталось %d часов"));
// результат: Осталось 5 часов
Ссылка на источник