- Изучаем циклы в PHP: цикл for с примерами
- Оператор цикла for в PHP
- Как работает цикл for в PHP?
- Блок-схема цикла for
- Простой пример цикла for в PHP
- Задачи на циклы foreach, while, for в PHP
- Учебник PHP
- Практика
- Важное
- Регулярки
- Работа с htaccess
- Файлы, папки
- Сессии и куки
- Работа с БД
- Практика по работе с БД в PHP
- Практика
- Движок PHP
- Продвинутые БД
- Аутентификация
- Практика
- ООП и MVC
- Абстрактные классы и интерфейсы
- Трейты
- ООП Магия
- Практика
- Практика: классы как набор методов
- Примеры решения задач
- Задача
- Задача
- Задача
- Задачи для решения
- Работа с foreach
- Работа с ключами
- Циклы while и for
- Задачи
- Задачи посложнее
- Массивы PHP | упражнения с решением
- 1. Отображение значений массива в виде списка
- 2. Добавление значений в массив
- 3. Массив из слов, введённых пользователем
- 4. Добавление пользовательского ввода в массив
- 5. Добавление пользовательского ввода в массив
- 6. Выбор самых высоких и самых низких значений темперетур из массива
- 7. Многомерный массив в таблице HTML
- 8. Переписать подмассивы в ассоциативные и вывести в таблице HTML
- 9. Отображение ключей и значений массива
- 10. Удаление элемента из массива
- 11. Получение первого элемента из массива
- 12. Декодирование строки JSON
- 13. Вставка нового элемента в массив в любую позицию
- 14. Сортировка ассоциативного массива по значению и по ключу
- 15. Бисерная сортировка (Bead sort) массива положительных целых чисел
- 16. Объединение двух массивов
- 17. Измените значения массива на верхний или нижний регистр
- 18. Найти все числа в указанном интервале, которые делятся на 4
Изучаем циклы в PHP: цикл for с примерами
Цикл for является одним из наиболее часто используемых циклов в любом языке программирования. В этой статье мы подробно рассмотрим цикл for PHP .
Оператор цикла for в PHP
Цикл for в PHP выполняет блок кода определенное количество раз на основе счетчика. При этом количество раз, которое блок кода должен быть выполнен, определяется предварительно до входа в тело цикла.
for является одним из самых сложных видов цикла. В PHP цикл for ведет себя аналогично C . Ниже приведена структура синтаксиса:
В приведенном выше описании ключевое слово for указывает на цикл. В скобках определяются выражения, а затем инструкция, которую необходимо выполнить.
Как работает цикл for в PHP?
Чтобы понять, как работает цикл for , нам нужно понять эти три выражения. Выражение: expresison1 является первым, которое выполняется только один раз перед входом в цикл. Оно выполняется безоговорочно. Это значит, что первый раз перед входом в цикл выражение будет выполнено.
Expresison1 называется инициализирующим выражением, поскольку оно используется для инициализации счетчика, который используется в выражениях expression2 и expression3 .
Expression2 ( проверка условия ) проверяется для того, чтобы определить разрешает ли условие выполнить инструкцию или нет. Первый раз оно запускается после expression1 , затем — перед входом в цикл.
Обычно expression2 содержит условный оператор, чтобы проверить, возвращает ли условие true или false . Если условие вернет true , тогда будет выполняться оператор, написанный в цикле.
Expression3 выполняется в конце каждой итерации после оператора цикла. Обычно программисты называют его выражением инкремента. Оно используют это выражение для увеличения значения счетчика, который был инициализирован в expression1 и проанализирован в expression2 .
Все три выражения не являются обязательными. Также можно создать PHP цикл, как показано ниже:
Если у нас несколько строк в цикле for , используйте фигурные скобки, как показано ниже:
Блок-схема цикла for
На первом шаге выполняется выражение expression1 . Если вы внимательно посмотрите блок-схему, то обнаружите, что для expression1 не существует условия. Выражение expression1 похоже на поток выполняемой программы.
На следующем шаге сразу после выражения expression1 выполняется expression2 . Оно проверяет, выполняется ли условие цикла. Если условие истинно, то дальше будет выполняться цикл, иначе поток выйдет из цикла.
Если expression2 вернет true , то на третьем шаге будет выполнен оператор, написанный в цикле for . После этого будет выполнено третье выражение expression3 .
После выполнения выражения expression3 поток снова проверяет expression2 , и цикл продолжается до тех пор, пока expression2 не вернет false .
Простой пример цикла for в PHP
Рассмотрим случай, когда нужно вывести на экран числа от 1 до 10 через запятую. Ниже приведен код:
Или с фигурной скобкой:
Выражение $i=1 является expression1 , которое выполняется безоговорочно. Мы используем expression1 для инициализации переменной, равной $i=1 .
Источник
Задачи на циклы foreach, while, for в PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
- Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс ArrayConvertor - Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс TagHelper - Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс FormHelper - Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс TableHelper - Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс SessionShell - Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс CookieShell - Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс FileManipulator - Урок №
новая вкладка с new.code.mu
. текст, код Практика: класс databaseShell TODO cart корзина flash шаблонизатор роутер контроллер кеш логи фалидатор
Перед решением задач изучите теорию к данному уроку.
Примеры решения задач
Задача
Задача. Дан массив с элементами ‘html’, ‘css’, ‘php’, ‘js’, ‘jq’. С помощью цикла foreach выведите эти слова в столбик.
Решение: Для начала необходимо создать сам массив. В данном случае мы можем воспользоваться различными способами: объявить через [] либо просто воспользоваться присваиванием $arr[] = ‘html’; $arr[] = ‘php’; и так далее. Я выбрал первый способ, так как он занимает меньше места при записи:
Теперь необходимо воспользоваться циклом foreach:
Как это все работает: в переменной $elem все элементы будут лежать по порядку: сначала ‘html’, потом ‘css’ и так далее. Я буду выводить их на экран с помощью echo, а после вывода элемента ставить тег
(он делает перевод строки). Содержимое $elem и тег
являются строками, поэтому между ними я ставлю точку — соединяю тем самым две строки вместе.
Задача
Задача. Дан массив с элементами 10, 20, 15, 17, 24, 35. Найдите сумму элементов этого массива. Запишите ее в переменную $result.
Решение: Первое решение, которое может прийти в голову новичку — это просуммировать все элементы массива ‘руками’: $arr[0]+$arr[1]+. +$arr[5].
Однако, этот способ не правильный , так как в случае изменения массива код придется переписывать (например, в него добавится еще 10 элементов, или 100, что вообще будет печально). Решение необходимо делать как можно более универсальным.
Поэтому мы должны воспользоваться циклом foreach — в этом случае мы не будем привязаны к количеству элементов массива.
Теперь нужно подумать о том, как просуммировать элементы массива в цикле. Для этого я введу переменную $result, к которой при каждом проходе цикла буду прибавлять ее саму и еще один элемент массива таким образом $result = $result + $elem:
В строке $result = 0 я зануляю переменную $result, если этого не сделать — в цикле возникнет ошибка в строке $result = $result + $elem, так как при первом проходе цикла переменная $result не будет определена.
Как работает строчка $result = $result + $elem: при первом проходе в переменной $result будет 0, в $elem – 10 (первый элемент массива), тогда в $result запишется 0+10 = 10.
При втором проходе цикла в $result лежит уже 10 (значение из прошлого прохода цикла), а в $elem лежит 20 (следующий элемент массива), тогда в $result запишется 10+20=30.
При третьем проходе цикла в $result лежит 30, а в $elem – 15, в $result запишется 30+15 = 45. И так далее пока цикл не закончится.
Строчку $result = $result + $elem можно записать короче: $result += $elem.
Задача
Задача. Выведите столбец чисел от 1 до 100.
Решение: Задачу можно решить как циклом for, так и циклом while. Вначале решим через цикл while:
Решение через цикл for:
Задачи для решения
Работа с foreach
Дан массив с элементами ‘html’, ‘css’, ‘php’, ‘js’, ‘jq’. С помощью цикла foreach выведите эти слова в столбик.
Дан массив с элементами 1, 2, 3, 4, 5. С помощью цикла foreach найдите сумму элементов этого массива. Запишите ее в переменную $result.
Дан массив с элементами 1, 2, 3, 4, 5. С помощью цикла foreach найдите сумму квадратов элементов этого массива. Результат запишите переменную $result.
Работа с ключами
Дан массив $arr. С помощью цикла foreach выведите на экран столбец ключей и элементов в формате ‘green — зеленый’.
Дан массив $arr с ключами ‘Коля’, ‘Вася’, ‘Петя’ и с элементами ‘200’, ‘300’, ‘400’. С помощью цикла foreach выведите на экран столбец строк такого формата: ‘Коля — зарплата 200 долларов.’.
Циклы while и for
Выведите столбец чисел от 1 до 100.
Выведите столбец чисел от 11 до 33.
Выведите столбец четных чисел в промежутке от 0 до 100.
С помощью цикла найдите сумму чисел от 1 до 100.
Задачи
Дан массив с элементами 2, 5, 9, 15, 0, 4. С помощью цикла foreach и оператора if выведите на экран столбец тех элементов массива, которые больше 3-х, но меньше 10.
Дан массив с числами. Числа могут быть положительными и отрицательными. Найдите сумму положительных элементов этого массива.
Дан массив с элементами 1, 2, 5, 9, 4, 13, 4, 10. С помощью цикла foreach и оператора if проверьте есть ли в массиве элемент со значением, равным 4. Если есть — выведите на экран ‘Есть!’ и выйдите из цикла. Если нет — ничего делать не надо.
Дан массив числами, например: [’10’, ’20’, ’30’, ’50’, ‘235’, ‘3000’]. Выведите на экран только те числа из массива, которые начинаются на цифру 1, 2 или 5.
Дан массив с элементами 1, 2, 3, 4, 5, 6, 7, 8, 9. С помощью цикла foreach создайте строку ‘-1-2-3-4-5-6-7-8-9-‘.
Составьте массив дней недели. С помощью цикла foreach выведите все дни недели, а выходные дни выведите жирным.
Составьте массив дней недели. С помощью цикла foreach выведите все дни недели, а текущий день выведите курсивом. Текущий день должен храниться в переменной $day.
Задачи посложнее
С помощью цикла for заполните массив числами от 1 до 100. То есть у вас должен получится массив [1, 2, 3. 100].
Дан массив $arr. С помощью цикла foreach запишите английские названия в массив $en, а русские — в массив $ru.
Дано число $num=1000. Делите его на 2 столько раз, пока результат деления не станет меньше 50. Какое число получится? Посчитайте количество итераций, необходимых для этого (итерация — это проход цикла). Решите задачу сначала через цикл while, а потом через цикл for.
Источник
Массивы PHP | упражнения с решением
1. Отображение значений массива в виде списка
Есть массив $color = array (‘красный’, ‘белый’, ‘зеленый’)
Напишите сценарий PHP, который будет отображать цвета следующим образом:
2. Добавление значений в массив
В этом упражнения мы будем использовать список из десяти крупнейших городов. Создайте массив со следующими значениями: Москва, Киев, Минск, Токио, Мехико, Нью-Йорк, Сеул, Шанхай, Лагос, Каир, Лондон.
Выведите эти значения в браузере через запятую, используя цикл для перебора массива. Отсортируйте массив, а затем выведите значения в браузере в неупорядоченном списке, снова используя цикл.
Добавьте в массив следующие города: Астана, Кишинев, Душанбе, Баку. Снова отсортируйте массив и еще раз выведите его в браузере в виде неупорядоченного списка.
3. Массив из слов, введённых пользователем
Для этого упражнения PHP создайте форму, запрашивающую у пользователя информацию о погоде, которая была в месяц по выбору пользователя. В отдельных текстовых полях запросите город, месяц и год, о которых идет речь. Ниже покажите ряд флажков, использующих погодные условия: дождь, солнце, облака, холодно, тепло, снег, ветер. Настройте форму для создания массива из отмеченных элементов.
В разделе ответа вашего скрипта создайте массив, используя город, месяц и год, введенные пользователем в качестве значений. Выведите следующий ответ: «В городе $city в месяце $month в году $year вы наблюдали следующую погоду: », где $city, $month и $year — значения из созданного вами массива.
Затем выполните цикл по массиву $weather[], который вы получили от пользователя, чтобы отправить обратно маркированный список с ответами пользователя.
4. Добавление пользовательского ввода в массив
В этом упражнении PHP вы создадите массив, распечатаете его в браузере, а затем попросите пользователя добавить к нему ещё несколько слов.
Создайте массив видов транспорта, включая автомобиль, самолет, паром и метро. Напечатайте в браузере следующее утверждение: «Путешествовать можно по городу, стране или миру. Вот список некоторых распространенных видов транспорта:» Затем введите неупорядоченный список, созданный путем повторения созданной вами переменной массива.
Затем предоставьте пользователю текстовое поле ввода и попросите пользователя добавить в список другие виды транспорта, разделенные запятыми. Когда пользователь нажимает «Перейти», обработайте ввод с помощью функций массива, чтобы отправить обратно исходный список с добавлением пользователя. Добавьте еще одно текстовое поле с текстом «Добавить еще?» и еще одну кнопка отправки. Когда пользователь нажимает эту кнопку, страница должна перезагрузиться с новыми дополнениями, добавленными к ранее расширенному списку. Ваш код должен позволять пользователю добавлять элементы сколько угодно раз.
5. Добавление пользовательского ввода в массив
В этом упражнении PHP мы будем использовать список включающий страны и города:
Токио, Япония; Мехико, Мексика; Нью-Йорк, США; Мумбаи, Индия; Сеул, Корея; Шанхай, Китай; Лагос, Нигерия; Буэнос-Айрес, Аргентина; Каир, Египет; Лондон, Англия.
Создайте ассоциативный массив, используя страны в качестве ключей и города в качестве значений. Создайте форму для пользователя с инструкциями «Выберите город:»
Следуйте этому запросу с полем выбора для 10 городов с параметрами, созданными путем циклического просмотра массива. Когда пользователь нажимает кнопку отправки, возвращается выписка $city находится в $country, где $city — это значение, выбранное пользователем, а $country — его ключ.
6. Выбор самых высоких и самых низких значений темперетур из массива
В этом упражнении PHP мы создадим массив температур. Выберите весенний месяц, чтобы иметь возможность выдерживать более широкий диапазон температур. Мы будем использовать 30 дней месяца. Упражнение является общим, но вы можете использовать конкретный месяц в своем собственном сценарии. Сценарий ответов будет использовать шкалу Фаренгейта, но, вы можете использовать градусы Цельсия.
Создайте свой список из 30 высоких температур, приближенных к погоде для весеннего месяца, затем найдите среднюю высокую температуру, пять самых теплых высоких температур и пять самых низких высоких температур. Распечатайте результаты в браузере.
Подсказка: символ HTML для знака градуса — °.
Вот список из тридцати высоких температур по Фаренгейту, которые вы можете использовать:
68, 70, 72, 58, 60, 79, 82, 73, 75, 77, 73, 58, 63, 79, 78,
68, 72, 73. , 80, 79, 68, 72, 75, 77, 73, 78, 82, 85, 89, 83
7. Многомерный массив в таблице HTML
Вот содержимое вашего массива: Город, Страна, Континент; Токио, Япония, Азия; Мехико, Мексика, Северная Америка; Нью-Йорк, США, Северная Америка; Мумбаи, Индия, Азия; Сеул, Корея, Азия; Шанхай, Китай, Азия; Лагос, Нигерия, Африка; Буэнос-Айрес, Аргентина, Южная Америка; Каир, Египет, Африка; Лондон, Великобритания, Европа.
Отобразите многомерный массив в таблице HTML. Первая строка должна быть строкой заголовка и содержать записи в первом подмассиве. Вызывайте эти элементы без использования цикла. Для последующих строк используйте цикл for с вложенным внутри циклом foreach, чтобы заполнить таблицу оставшимся содержимым массива. Используйте функцию count(), чтобы цикл for работал правильно, даже если вы увеличиваете или уменьшаете массив.
Добавьте простую таблицу стилей в заголовок вашего HTML. Вы можете решить эту задачу самостоятельно или просто вырезать и вставить следующее между тегами .
8. Переписать подмассивы в ассоциативные и вывести в таблице HTML
Продолжим работу с массивом больших городов $multiCity из предыдущего упражнения и перепишем его как ассоциативный массив.
Удалите первый подмассив array(‘Город’, ‘Страна’, ‘Континент’) и добавьте ключи к соответствующим элементам в оставшихся массивах. Например, сопоставьте Город с Токио, Страна с Японией и Континент с Азией.
Каждый из последующих подмассивов должен включать эти три элемента, по одному для каждого из городов, всего 11 подмассивов.
Удалите код первого сценария для строки заголовка таблицы и вместо него напишите цикл foreach для перебора ключей одного из подмассивов. Для остальных строк убедитесь, что цикл for начинается с начала массива.
Вы должны получить точно такую же таблицу HTML, как и в предыдущем упражнении.
9. Отображение ключей и значений массива
$ceu = array(«Италия» => «Рим», «Люксембург» => «Люксембург», «Бельгия» => «Брюссель», «Дания» => «Копенгаген», «Финляндия» => «Хельсинки», «Франция «=>»Париж», «Словакия»=>»Братислава», «Словения»=>»Любляна», «Германия»=>»Берлин», «Греция»=>»Афины», «Ирландия» => «Дублин», «Нидерланды» => «Амстердам», «Португалия» => «Лиссабон», «Испания» => «Мадрид», «Швеция» => «Стокгольм», «Великобритания» => «Лондон», «Кипр»=>»Никосия», «Литва»=>»Вильнюс», «Чехия»=>»Прага», «Эстония»=>»Таллин»,» Польша «=>»Варшава»);
Создайте сценарий PHP, который отображает столицу и название страны из указанного выше массива $ceu. Отсортируйте список по названиям столиц.
Страна Нидерланды — столица Амстердам
Страна Греция — столица Афины
Страна Германии — столица Берлин
10. Удаление элемента из массива
Удалите элемент из указанного массива PHP. После удаления элемента необходимо нормализовать целочисленные ключи.
$x = array(1, 2, 3, 4, 5);
11. Получение первого элемента из массива
$color = array(4 => ‘белый’, 6 => ‘зеленый’, 11 => ‘красный’);
Напишите сценарий PHP, чтобы получить первый элемент указанного выше массива.
12. Декодирование строки JSON
Напишите сценарий PHP, который декодирует следующую строку JSON.
Пример кода JSON:
13. Вставка нового элемента в массив в любую позицию
Напишите сценарий PHP для сортировки следующего ассоциативного массива:
После вставки ‘$’ массив будет:
14. Сортировка ассоциативного массива по значению и по ключу
Напишите сценарий PHP для сортировки следующего ассоциативного массива:
array («Sophia» => «31», «Jacob» => «41», «William» => «39», «Ramesh» => «40») в
а) сортировка по возрастанию по значению
б) по возрастанию сортировка по ключу
в) сортировка по убыванию по значению
г) сортировка по убыванию по ключу
15. Бисерная сортировка (Bead sort) массива положительных целых чисел
Напишите программу PHP для сортировки массива положительных целых чисел с помощью алгоритма Bead-Sort.
16. Объединение двух массивов
Напишите программу PHP для объединения (по индексу) следующих двух массивов.
17. Измените значения массива на верхний или нижний регистр
Напишите функцию PHP для изменения всех значений следующего массива на верхний или нижний регистр
18. Найти все числа в указанном интервале, которые делятся на 4
Напишите сценарий PHP, который отображает все числа от 200 до 250, делящиеся на 4.
Примечание. Не используйте управляющие операторы PHP.
Источник