Конструкция foreach в PHP.


Конструкция foreach в PHP позволяет легко осуществлять перебор элементов массива. Обычно foreach() используется в тех случаях, когда необходимо перебрать именно все элементы массива (от самого первого до последнего).

Синтаксис foreach. Данная конструкция может быть использована в двух вариациях:

1
2
3
foreach($some_array as $value){
   //здесь какие-то действия с элементом массива $value
}

Здесь нас не интересует индекс перебираемых элементов, поэтому мы работаем только с их значением $value. Рассмотрим пример:

1
2
3
4
5
6
7
8
9
<?php
$product[] = "Банан";
$product[] = "Хлеб";
$product[] = "Молоко";
$product[] = "Рис";
foreach ($product as $value) {
echo "<b>$value</b><br>";
}
?>

Будет выведен список продуктов:

Банан
Хлеб
Молоко
Рис

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

1
2
3
foreach($some_array as $key => $value){
  //здесь мы можем работать не только со значением $value, но и с ключом данного элемента $key
}

Если массив $some_array окажется пустым, то действия внутри цикла выполнены не будут. Если же массив $some_array совсем не существует, то мы получим сообщение об ошибке.

Обратите внимание, что foreach не поддерживает подавление ошибок с помощью символа @.

С началом работы foreach внутренний указатель массив автоматически перемещается на самый первый элемент. При каждой интерации это указатель изменяется на 1, то есть переходит к следующему элементу. По окончании работы цикла сохраняется ссылка на последний элемент массива. Мы можем использовать этот элемент, либо же уничтожить ссылку (значение $value):

1
unset($value);

Для многомерных массивов мы можем использовать вложенные конструкции foreach. Рассмотрим пример:

1
2
3
4
5
6
7
8
9
10
11
$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>”;
    }
}

Этот код выведет список наших продуктов.





Другие посты

Категория: PHP-скрипты

Оставить комментарий