Skip to content

Instantly share code, notes, and snippets.

@seredniy
Last active August 14, 2023 15:55
Show Gist options
  • Save seredniy/bbdc3ff594719b9a65e42f3d708a406a to your computer and use it in GitHub Desktop.
Save seredniy/bbdc3ff594719b9a65e42f3d708a406a to your computer and use it in GitHub Desktop.
Правильное склонение для чисел (дней, день, дня)
<?php echo getNumEnding(1, array('день', 'дня', 'дней')) ?>
<?php
/**
* Функция возвращает окончание для множественного числа слова на основании числа и массива окончаний
* param $number Integer Число на основе которого нужно сформировать окончание
* param $endingsArray Array Массив слов или окончаний для чисел (1, 4, 5),
* например array('яблоко', 'яблока', 'яблок')
* return String
*/
function getNumEnding($number, $endingArray)
{
$number = $number % 100;
if ($number>=11 && $number<=19) {
$ending=$endingArray[2];
}
else {
$i = $number % 10;
switch ($i)
{
case (1): $ending = $endingArray[0]; break;
case (2):
case (3):
case (4): $ending = $endingArray[1]; break;
default: $ending=$endingArray[2];
}
}
return $ending;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment