Здравствуй, дали задачу по PHP
Напишите массив с числами от 1 до 30
[1, 2, 3 ....]
и функцию, которая делает следующее
проходит по массиву и каждому числу дописывает фразу "новых комментариев" и эти слова склоняются в соответствии с их числом
и делает в итоге массив
1 новый комментарий
2 новых комментария
и тд
и вывести на экран в
html в элементе
Прошу помочь с примерами решения, в PHP я новичок, теорию изучил не плохо но сижу несколько дней и не дошло пока что использовать в этом примере.
Ответ
Есть статья относительно множественных чисел. Там собраны алгоримы определения множественного числа для многих стран. Алгоритмы представлены в виде формул. Не нужно изобретать велосипед. Мы же используем формулы в математике.
В данном случае мы берем русский язык: nplurals=3
То есть для русского языка три множественные формы:
1) Когда элемент один. Например: 1 новый комментарий
2) Когда элементов больше двух, но меньше пяти. Например: 3 комментария, 4 комментария
3) Когда элементов больше или равно пяти. Например: 5 новых комментариев, 6 новых комменариев
Теперь перейдем к реализации. Условия привел в более читаемый вид:
$numbers = ['1', '2', '3', '4', '5'];
function plural($number)
{
if ($number % 10 == 1 && $number % 100 != 11) {
return $number . ' новый комментарий';
} else {
if ($number % 10 >= 2 && $number % 10 <= 4 && ($number % 100 < 10 || $number % 100 >= 20)) {
return ($number . ' новых комментария');
} else {
return ($number . ' новых комментариев');
}
}
}
foreach ($numbers as $number) {
echo plural($number);
echo '
';
}
Комментариев нет:
Отправить комментарий