@geentroy

PHP скрипт вывода текста в зависимости от цифрового значения, что тут не так?

Есть следующий скрипт:

<? $titles = ['заявка', 'заявки', 'заявок']; 
$num = 34; 
$word = $titles[ 1 === $num % 10 && 11 !== $num % 100 ? 0 : 2 <= $num % 10 && 4 >= $num % 10 && ( 10 > $num % 10 || 20 <= $num % 100 ) ? 1 : 2 ]; 
echo $num. ' ' .$word;

При смене значения $num c любого на "1" или "101" выводит текст "1 заявок" или "101 заявок", а должен соответственно "1 заявка" или "101 заявка".

Что не так указал?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@geentroy Автор вопроса
По итогу вот так вычленил и все заработало
<? $num = 1;
$titles = ['заявка', 'заявки', 'заявок'];
$cases = [2, 0, 1, 1, 1, 2];
$word = $titles[($num % 100 > 4 && $num % 100 < 20) ? 2 : $cases[min($num % 10, 5)]];
echo $num. ' ' .$word;


Благодарю Артём Рыженький за помощь))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы