Склонение окончаний у имен существительных после числительных
Для решения данной задачи нам потребуется написать небольшую функцию и передать ей парочку аргументов. Назовем нашу функцию "Inclination".
Итак, сначала я приведу код функции с примером работы, а затем расскажу что да как.
<? function inclination($time, $arr){ $timex = substr($time, -1); if ($time >=10 AND $time <=20) return $arr[2]; elseif ($timex == 1) return $arr[0]; elseif ($timex>1 AND $timex<5) return $arr[1]; else return $arr[2]; } // 1 просмотр, 2 просмотра, 5 просмотров $nazvaniya = array("просмотр", "просмотра", "просмотров"); $prosmotrov = 8; // на выходе получим "8 просмотров" echo $prosmotrov." ".inclination($prosmotrov, $nazvaniya); ?>
Теперь подробнее. Функция принимает 2 аргумента:
- $prosmotrov - переменная, в которой содержится цифра, количество
- $nazvaniya - одномерный массив, в котором перечисляются просклоненные имена существительные, окончания у которых меняются в зависимости от числительного
Именно эти значения мы подставляем в функцию. И на выходе мы получим красивую фразу. Ведь согласитесь, что, например, фраза "Найдена 21 статья" куда красивее, нежели "Найдено 21 статей".
И все это можно сделать с помощью такой небольшой функции.