Конструкция foreach предоставляет простой способ перебора массивов. foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Существует два вида синтаксиса:
foreach (iterable_expression as $value)
statement
foreach (iterable_expression as $key => $value)
statement
Первый цикл перебирает массив, задаваемый с помощью iterable_expression.
На каждой итерации значение текущего элемента присваивается переменной $value.
Второй цикл дополнительно присвоит ключ текущего элемента переменной $key на каждой итерации.
Обратите внимание, что foreach не изменяет указатель внутреннего массива, который используется такими функциями, как current() и key().
Возможно настроить итераторы объектов.
Для того, чтобы напрямую изменять элементы массива внутри цикла, переменной $value должен предшествовать знак &. В этом случае значение будет присвоено по ссылке.