Цикл foreach

Цикл foreach предоставляет простой способ перебора массивов. Foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными.

Первый вид синтаксиса цикла foreach:

foreach ($array as $value) {
инструкции
}

Цикл foreach будет перебирать заданный массив — $array . На каждой итерации значение текущего элемента присваивается переменной $value.

Цикл foreach выполняет обход и чтение всех элементов массива, пока не будет достигнут последний.

Пример использования:

$masiv = array(1, 2, 3, 4, 5);
foreach ($masiv as $i) {
echo $i;
}

12345

Второй вид синтаксиса foreach:

foreach ($array as $key => $value) {
  инструкции
}

Теперь при использовании второго вида синтаксиса на каждой итерации дополнительно присваивается значение текущего ключа переменной $key.

Пример использования:

$masiv = array(1, 2, 3, 4, 5);
foreach ($masiv as $key => $i) {
echo "[$key] = ", $i, "<br>";
}

[0] = 1
[1] = 2
[2] = 3
[3] = 4
[4] = 5

Так же имеется возможность обхода массива массивов с распаковкой вложенного массива в переменные цикла, передав list() в качестве значения.

Пример:

$masiv = array([1, 2],[3, 4]);
foreach ($masiv as list($a, $b)) {
echo "A: $a; B: $b <br>";

A: 1; B: 2
A: 3; B: 4

Для того, чтобы напрямую изменять элементы массива внутри цикла, переменной $value должен предшествовать знак &. В этом случае значение будет присвоено по ссылке.

$masiv = array(1, 2, 3, 4, 5);
foreach ($masiv as &$i) {
$i = $i*10; // массив $i сейчас таков: array(10, 20, 30, 40, 50)
echo $i;
unset($i); // разорвать ссылку на последний элемент
}

1020304050

Ссылка на последний элемент массива остается даже после того, как оператор foreach завершил работу. Поэтому рекомендуется удалять ее с помощью функции unset().

Добавить комментарий

Случайные статьи

  • LM4906 — миниатюрный УМЗЧ 1 Вт

    LM4906 — миниатюрный УМЗЧ 1 Вт

    LM4906 — усилитель мощности звуковой частоты фирмы National Semiconductor. Микросхема LM4906 предназначена для применения в портативных устройствах. Выходная мощность усилителя 1 Вт при напряжении питания 5В и 390 мВт при напряжении питания 3В. Микросхема характеризуется низким напряжением питания, которое может быть от 2,6В до 5,5В и низким током потребления (в режиме энергосбережения) …Подробнее...
  • Триггеры, счетчики, регистры, мультиплексоры, шифраторы, дешифраторы

    Триггер — это уст-во с двумя устойчивыми состояниями равновесия, предназначенные для записи и хранения информации. Триггер способен хранить 1 бит данных. Условное обозначение триггера имеет вид прямоугольника, внутри которого пишется буква Т. Слева к изображению прямоугольника подводятся входные сигналы. Обозначения входов сигнала пишутся на дополнительном поле в левой части прямоугольника. …Подробнее...
  • Регулятор напряжения на LM350K

    На рисунке показана простая схема регулятора напряжения на LM350K. Выходное напряжение регулируемое от 1,25В до 13,5В при выходном токе на нагрузке до 3А. Так как схема имеет минимальное напряжение около 1,25В, то добавив два 3А диода мы получим регулируемое выходное напряжение от нуля вольт, так как падение напряжение на двух …Подробнее...
  • 8-и разрядный частотомер на 50 МГц (PIC16F628A)

    8-и разрядный частотомер на 50 МГц (PIC16F628A)

    Частотомер основан на микроконтроллере PIC16F628A и имеет 8-ми разрядную индикацию. Максимальная частота измерения 50 МГц (вход TTL). Время счета 2 секунды который повторяется каждые 5 секунд. Частотомер имеет внутреннюю частоту 4 МГц, а кварцевый резонатор на 32768 Гц необходим для точного подсчета интервала времени. В частотомере используются восемь семисегментных индикаторов с …Подробнее...
  • LM3915 — 10-и разрядный индикатор уровня

    LM3915 — 10-и разрядный индикатор уровня

    На рисунке показана схема простого десятиразрядного индикатора уровней. Основа схемы ИМС LM3915, напряжение питания от 5 до 20В, при напряжении питания 5В стабилизатор 7805 из схемы можно исключить. Устройство подключается непосредственно к линейному выходу.Подробнее...