Схиляння слів на php

Схиляння слів на мові програмування PHP

Дуже популярною проблемою, з якою стикаються Web-програмісти, це схиляння слів на мові програмування PHP. Наприклад, потрібно вивести, скільки хвилин тому була залишено якусь повідомлення. Можна написати просто число і слово "хвилин". Але тоді буде написано досить дивно, наприклад,"1 хвилин","2 хвилин"І так далі. Фактично, без відмінювання слів на мові програмування PHP Вам не обійтися, якщо, звичайно, Ви хочете писати по-російськи.




Проблема новачкам здасться дуже складною, але, насправді, у відмінювання слів є певна закономірність. Подивіться самі: "1 хвилина, 2 хвилини, 5 хвилин, 11 хвилин, 19 хвилин, 21 хвилина, 22 хвилини, 25 хвилин і так далі". Бачите закономірність? 1, 21, 31, 41 - завжди буде "хвилина". Якщо молодший розряд більше 1-го і менше 5, при цьому саме число при діленні на 100 має залишок більше 20 (Тобто, наприклад, не число 12 і не 112), То будуть "хвилини". В інших випадках "хвилин".




А ось далі вже починається побудова алгоритму, оскільки закономірність очевидно є. Я приведу Вам, на мій погляд, найкрасивіший алгоритм. Він найбільш короткий, і в той же час дуже швидкий.

lt ;?php
function getWord($ number, $ suffix){
$ keys
= array(2,0,1,1,1,2) -
$ mod
= $ number %100-
$ suffix_key
=($ mod gt;7 $ mod lt;20)?2: $ keys[min($ mod %10,5)] -
return $ suffix[$ suffix_key] -
}
$ array
= array("Хвилина","Хвилини","Хвилин") - $ n =21-
$ word
= getWord($ n, $ array) -
echo
"$ N $ word
"
-
$ n
=11-
$ word
= getWord($ n, $ array) -
echo
"$ N $ word
"
-
$ n
=4-
$ word
= getWord($ n, $ array) -
echo
"$ N $ word
"
-
?gt;

Запустивши даний скрипт Ви побачите, що схиляння слів на мові програмування PHP відбувається на ура. Можу лише додати, що крім "хвилин"Там може бути"день","година","людина","комп`ютер"І всі інші іменники, які схиляються в залежності від числівника.

Поділися в соціальних мережах:

Схожі
Схиляння імен на phpСхиляння імен на php
Умовний оператор в phpУмовний оператор в php
Автозбереження в excel.Автозбереження в excel.
Умовний оператор в jаvascriptУмовний оператор в jаvascript
Microsoft: edge найбільш енергоефективний браузерMicrosoft: edge найбільш енергоефективний браузер
Що таке сокет в phpЩо таке сокет в php
Як зробити типи користувачів на phpЯк зробити типи користувачів на php
Вивчаємо coffeescript. Цикли.Вивчаємо coffeescript. Цикли.
Келебії докса - введення в програмування на goКелебії докса - введення в програмування на go
Як порахувати час в excel.Як порахувати час в excel.
» » Схиляння слів на php