Порой на сайтах встречаются такие фразы: на сайте 2 гостей, 2 гостей(я) и прочие извращения. Мы же живем в цивилизованной стране, так давайте склонять окончания слов на PHP правильным образом, а не как придется. Для начала напишем функцию, которая будет определять, в какое склонение ставить слово.
function plural_type($n){ return ($n%10==1 && $n%100!=11 ? 0 : ($n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2)); }
По факту мы просто получаем число 0,1,2, что означает первый, второй или третий элемент массива. А теперь создадим массив данных
$_plural_years = array('год', 'года', 'лет'); $_plural_months = array('месяц', 'месяца', 'месяцев'); $_plural_days = array('день', 'дня', 'дней'); $_plural_times = array('раз', 'раза', 'раз'); $_plural_products = array('товар', 'товара', 'товаров'); $_plural_guest = array('гость', 'гостя', 'гостей');
А теперь осталось дело за малым, передаем в функцию plural_type(5) значение, например, 5 и получаем результат:
echo '1 '.$_plural_guest[plural_type(1)].' посмотрел 2 '.$_plural_products[plural_type(2)].' 5 '.$_plural_days[plural_type(5)].' назад'; // 1 гость посмотрел 2 товара 5 дней назад
Вот такое простое решение слонения слов на PHP.