В PHP, для работы с массивами, предусмотрен специальный цикл for-each.
Так как массив представляет собой набор элементов с парами $ключ => $значение, то и перебирать их можно именно по этим параметрам. Для этих целей как раз и создан цикл foreach. Его синтаксис представляет собой следующую конструкцию: foreach($array as $key => $value) { инструкции; } Либо простая форма для одной инструкции: foreach($array as $key => $value) инструкция; Кроме указанных форм использования цикла foreach, существует еще одна форма: foreach($array as $value) { инструкции; } В такой форме цикл работает только со значениями элементов массива. В интерпретаторе PHP при начале работы создается несколько полезных переменных, хранящих в себе массу информации о самом интерпретаторе, данных о пользователе и др. Одна из таких переменных – суперглобальный массив, хранящийся в переменной $_SERVER. Фактически, это ассоциативный массив, задаваемый парами $ключ => $значение, который, аналогично обычным массивам, можно вывести в браузер пользователя. Давайте сделаем это в листинге 17.1. Листинг 17.1. Вывод массива $_SERVER в браузер пользователя с помощью цикла foreach
foreach($_SERVER as $key => $value) echo "<p>Ключ элемента: <i>$key</i> => Значение элемента: <b>$value</b></p>";
Есть один нюанс при работе массива foreach – он оперирует не самими
элементами массива, а создает их копии. Чтобы иметь возможность вносить изменения непосредственно в ключи и значения массивов, необходимо использовать ссылочный синтаксис: foreach($array as &$key => &$value) { Инструкции, меняющие непосредственно ключи и значения в массивах; }