Функция склонения значений чисел на PHP (дни, минуты, часы и тд)

Наверняка каждый кто сталкивался с выводом численной информации и её единицей измерения, также сталкивался с проблемой склонения той самой единицей измерения. Иногда со склонениями получаются проблемы, например 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 лет.


You have no rights to post comments

Карта сайта