Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Функция для правильного склонения слов под числительные

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Функция универсальна и может использоваться для склонения любых других слов, просто передайте нужные формы в массиве.

Пример склонения
1 → "1 блюдо"
2 → "2 блюда"
5 → "5 блюд"
11 → "11 блюд"
21 → "21 блюдо"
22 → "22 блюда"

Код
/**
 * Склонение существительных после числительных
 * @param int $number
 * @param array $forms ['блюдо', 'блюда', 'блюд']
 */
function pluralForm(int $number, array $forms): string 
{ 
     $number = abs($number) % 100; 
     $n1 = $number % 10; 
     if ($number > 10 && $number < 20) { 
         return $forms[2]; 
     } 
     if ($n1 > 1 && $n1 < 5) { 
          return $forms[1]; 
     } 
     if ($n1 == 1) { 
         return $forms[0]; 
     } 
     return $forms[2]; 
}

$inCartQuant = 22;
$dishWord = pluralForm($inCartQuant, ['блюдо', 'блюда', 'блюд']);
echo $dishWord;
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
 

Блог-note Заметки по 1С-Битрикс