Цикл foreach
Цикл foreach
предоставляет простой способ перебора массивов. Он работает только с массивами и объектами и будет генерировать ошибку в случае его использования с переменными других типов или неинициализированными переменными.
Синтаксис foreach
Есть два вида синтаксиса для данного цикла. Первый вид синтаксиса цикла foreach
выглядит следующим образом:
// код для исполнения
}
Цикл перебирает заданный массив $array
. На каждой итерации значение текущего элемента присваивается переменной $value
и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).
Посмотрим, как он работает на примере:
Пример
Попробуй сам »<?php
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
Результат выполнения кода:
green
blue
yellow
Когда мы запускаем цикл, PHP берёт первое значение массива "red"
и помещает его в переменную $value
. Затем один раз выполняется блок кода echo $value;
. Затем PHP делает тоже самое со вторым значением, третьим и т.д.
Получается, команды, принадлежащие циклу foreach
, будут запущены для каждого элемента отдельно.
Добавим несколько команд, поместив их в фигурные скобки. Попробуем вывести названия товаров, цена которых выше 99:
Пример
Попробуй сам »<?php
$products[] = ['name' => 'Товар1', 'price' => 99];
$products[] = ['name' => 'Товар2', 'price' => 199];
$products[] = ['name' => 'Товар3', 'price' => 299];
foreach($products as $product) {
if($product['price'] > 99)
echo $product['name'] . '<br>';
}
?>
Результат выполнения кода:
Товар3
Второй вид синтаксиса foreach
Второй вид синтаксиса foreach
выглядит так:
// код для исполнения
}
При использовании данной формы синтаксиса foreach
на каждой итерации цикла дополнительно присваивается значение текущего ключа переменной $key
.
Пример
Попробуй сам »<?php
$my_arr = array(10, 15, 20);
foreach ($my_arr as $key => $value) {
echo $key, ' ', $value, "<br>";
}
?>
Результат выполнения кода:
1 15
2 20