Цикл php обработки перебора массива

Цикл php обработки перебора массива

Цикл foreach осуществляет последовательный перебор всех элементов массива. Он работает только с массивами и объектами, а в случае его использования с переменными других типов или неинициализированными переменными будет сгенерирована ошибка.

Есть два вида синтаксиса для данного цикла. Первый вид синтаксиса цикла foreach выглядит следующим образом:

Цикл будет перебирать заданный массив — $array (вместо $array подставляется название массива). На каждой итерации значение текущего элемента присваивается переменной $value (можно указать любое другое имя переменной).

Оператор цикла foreach очень удобен, поскольку сам выполняет обход и чтение всех элементов массива, пока не будет достигнут последний. Он позволяет не держать постоянно в памяти тот факт, что индексация массивов начинается с нуля, и никогда не выходит за пределы массива, что делает конструкцию цикла очень удобной и помогает избежать распространенных ошибок.

Посмотрим, как он работает на примере:

Второй вид синтаксиса foreach , выглядит так:

При использовании данной формы синтаксиса на каждой итерации дополнительно присваивается значение текущего ключа переменной $key (можно указать любое другое имя переменной):

Чтобы можно было напрямую изменять элементы массива внутри цикла, нужно использовать ссылку. В этом случае значение будет присвоено по ссылке.

С помощью цикла FOREACH мы можем перебрать все элементы массива и выполнить для них (или только для некоторых из них) какие-либо действия.

Допустим, у нас есть массив товаров. Нужно вывести имена всех товаров, разделив их тегом
:

Результат в браузере:

Круто, да? Всего 2 строчки кода для вывода, причём неважно, насколько большой исходный массив! А теперь попробуем разобраться, как это работает.

Принцип работы цикла FOREACH

Возьмём пример попроще:

Когда мы запускаем цикл, PHP берёт первое значение массива и помещает его в переменную $value. Затем один раз выполняется блок кода. Затем PHP делает тоже самое со вторым значением, третьим и т.д.

Читайте также:  Экран на английском языке

Получается, команды, принадлежащие циклу FOREACH, будут запущены столько раз, сколько в нашем массиве элементов.

Для получения доступа к ключам массива существует следующий синтаксис:

Результат в браузере:

Чтобы выполнить в цикле несколько команд, используем уже знакомые нам фигурные скобки <> :

Перебор многомерного массива

Создадим обычный двумерный массив:

Если нужно перебрать элементы только одного индекса, мы можем сделать так:

Если нам требуется вывести все ключи, мы можем использовать два цикла foreach, один внутри другого:

Результат в браузере:

1. Создайте массив $arr и заполните его тремя значениями.
2. С помощью цикла foreach выведите все ключи и значения этого массива. Между ключом и значением должна быть строка -> , а после значения — перенос строки (тег
).

1. Создайте массив $arr и заполните его тремя значениями, каждое из которых должно быть одномерным массивом. В итоге должен получиться обычный двумерный массив.
2. Выведите ключи массива.
3. Выведите все значения подмассивов. Значения каждого подмассива разделите запятыми, но так, чтобы запятая была только между элементами, её не должно быть перед первым элементом и после последнего.
Например, для массива [1,2,3] нужно вывести строку 1, 2, 3

Забыли, что делает функция implode? Тогда рекомендую пересмотреть урок Преобразование массивов.

Кроме использования цикла for для вывода всех элементов массива на экран мы можем использовать функцию print_r , которая выведет все элементы массива вместе с их индексами.

Отображение в браузере:

Также, чтобы результат вывода функции print_r был более наглядным рекомендую перед использованием функции писать echo ""; Отображение в браузере:

Для вывода индекса элемента нужно использовать второй вариант синтаксиса цикла foreach

Ссылка на основную публикацию
Adblock detector