Ниже приведен код для функции, которая позволяет выставлять осмысленные окончания для существительных с числительными, например таких:
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 часовСсылка на источник