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

4 Апреля 2018

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

  • 1 комментарий
  • 2 комментария
  • 3 комментария
  • ...
  • 6 комментариев
	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 часов
Ссылка на источник
Возврат к списку