Получение правильной формы слова для разного количества в PHP
Получаем правильную форму числа для количества элементов:
<?php
const WORDS = [
'комментарий',
'комментария',
'комментариев'
];
function numDeclension($value, array $words, bool $show = true): string
{
$num = $value % 100;
if ($num > 19) $num = $num % 10;
$out = ($show) ? $value . ' ' : '';
switch ($num):
case 1: $out .= $words[0]; break;
case 2:
case 3:
case 4: $out .= $words[1]; break;
default: $out .= $words[2]; break;
endswitch;
return $out;
}
// 32 комментария
echo numDeclension(32, WORDS);
Предыдущая заметка
Простой шаблонизаторСледующая заметка
Количество символов в строке