Функция склонения значений чисел на PHP (дни, минуты, часы и тд)
- Подробности
- Категория: PHP, MySQL, Java
- Опубликовано 21.09.2013 11:19
Наверняка каждый кто сталкивался с выводом численной информации и её единицей измерения, также сталкивался с проблемой склонения той самой единицей измерения. Иногда со склонениями получаются проблемы, например 25 года, вместо 25 лет.
Мы составили универсальную функцию, которая подойдёт для любой единицы измерения.
Код функции:
function chti($string, $ch1, $ch2, $ch3){
$ff=Array('0','1','2','3','4','5','6','7','8','9');
if(substr($string,-2, 1)==1 AND strlen($string)>1) $ry=array("0 $ch3","1 $ch3","2 $ch3","3 $ch3" ,"4 $ch3","5 $ch3","6 $ch3","7 $ch3","8 $ch3","9 $ch3");
else $ry=array("0 $ch3","1 $ch1","2 $ch2","3 $ch2","4 $ch2","5 $ch3"," 6 $ch3","7 $ch3","8 $ch3"," 9 $ch3");
$string1=substr($string,0,-1).str_replace($ff, $ry, substr($string,-1,1));
return $string1;
}
Использование функции:
<?
echo chti(21,'минута','минуты','минут');
?>
Описание функции:
chti('число','x','y','z');
число - это то число, исходя из которого должна склоняться единица измерения. Число не должно содержить пробелов.
x - Склонение единицы измерения в Именительном падеже. Для удобства и простоты рекомендуется склонять к числу 1. Например 1 сантиметр, 1 бык, 1 год.
y - Склонение единицы измерения в Творительном падеже. Для удобства и простоты рекомендуется склонять к числу 2. Например 2 сантиметра, 2 быка, 2 года.
z - Склонение единицы измерения в Родительном падеже. Для удобства и простоты рекомендуется склонять к числу 5. Например 5 сантиметров, 5 быков, 5 лет.