Конструкция foreach в PHP позволяет легко осуществлять перебор элементов массива. Обычно foreach() используется в тех случаях, когда необходимо перебрать именно все элементы массива (от самого первого до последнего).
Синтаксис foreach. Данная конструкция может быть использована в двух вариациях:
foreach($some_array as $value){
//здесь какие-то действия с элементом массива $value
}
Здесь нас не интересует индекс перебираемых элементов, поэтому мы работаем только с их значением $value. Рассмотрим пример:
<?php
$product[] = "Банан";
$product[] = "Хлеб";
$product[] = "Молоко";
$product[] = "Рис";
foreach ($product as $value) {
echo "<b>$value</b><br>";
}
?>
Будет выведен список продуктов:
Банан
Хлеб
Молоко
Рис
Если же индекс (ключ) нам тоже важен для обработки данных, то можно использовать foreach несколько иначе:
foreach($some_array as $key => $value){
//здесь мы можем работать не только со значением $value, но и с ключом данного элемента $key
}
Если массив $some_array окажется пустым, то действия внутри цикла выполнены не будут. Если же массив $some_array совсем не существует, то мы получим сообщение об ошибке.
Обратите внимание, что foreach не поддерживает подавление ошибок с помощью символа @.
С началом работы foreach внутренний указатель массив автоматически перемещается на самый первый элемент. При каждой интерации это указатель изменяется на 1, то есть переходит к следующему элементу. По окончании работы цикла сохраняется ссылка на последний элемент массива. Мы можем использовать этот элемент, либо же уничтожить ссылку (значение $value):
unset($value);
Для многомерных массивов мы можем использовать вложенные конструкции foreach. Рассмотрим пример:
$my_array = array();
$my_array[0][0] = "Хлеб";
$my_array[0][1] = "Булочка";
$my_array[1][0] = "Молоко";
$my_array[1][1] = "Сок";
foreach ($my_array as $a1) {
foreach ($a1 as $a2) {
echo $a2.”<br>”;
}
}
Этот код выведет список наших продуктов.