| Ваш IP: 54.91.48.104 | Online(28) - гости: 22, боты: 6 | Загрузка сервера: 1.41 ::::::::::::

Цикл 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().

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

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

  • Выключатель света с задержкой

    Главная особенность выключателя с задержкой в том что после включения света, он гаснет через 1-2 минуты, такой выключатель целесообразно устанавливать в помещениях общего пользования, например в подъездах домов. Кнопку включения освещения целесообразно совместить с открыванием двери и каждый раз когда дверь будет открываться свет будет включаться и гореть 1-2 минуты, …Подробнее...
  • Усилитель на триодах

    Усилитель на триодах

    Выходная мощность при КНИ менее 1% 5Вт Неравномерность АЧХ (20…20000Гц) не более 0,7 дБ Полоса пропускания 5…250000Гц Чувствительность 300мВ На двойном триоде VL1 собраны 2-а каскада предварительного усилителя. RC- цепочки R6C2 R8C4 предназначены для развязки каскадов по питанию. Выходной каскад выполнен на 2-х мощных триодах VL2 VL3 по двухтактно-параллельной схеме. …Подробнее...
  • Блок управления стеклоочистителем

    Многие автомобили прежних лет выпуска имеют простой регулятор скорости работы двигателя стеклоочистителя — на два положения «быстро-медленно». Более удобен в работе блок, предлагаемый в этой статье. Он обеспечивает непрерывную работу стеклоочистителя в течение 1…4 с (1-3 цикла работы щеток). Паузу между циклами можно регулировать от 0 до 20 с переменным …Подробнее...
  • TDA2822M — УМЗЧ 1,7Вт

    TDA2822M — УМЗЧ 1,7Вт

    На ИМС TDA2822M можно собрать недорогой маломощный УМЗЧ. Микросхема TDA2822M имеет широкий диапазон питающих напряжений 1,8…15 В. Выходная мощность усилителя в зависимости от сопротивления нагрузки и напряжения питания (f = 1kHz, d = 10%) 4 Ом 3В 110 мВт 4 Ом 4.5В 320 мВт 4 Ом 6В 650 мВт 8 …Подробнее...
  • Индикаторы сетевого напряжения

    Индикаторы сетевого напряжения

    На рисунке № 1 показана схема простого индикатора сетевого напряжения. R1 ограничивает прямой ток через светодиод HL1. С1 используется в качестве балластного элемента, что позволило улучшить тепловой режим уст-ва индикации. При отрицательной полуволне сетевого напряжения стабилитрон VD1 работает как обычный диод, предохраняя светодиод от пробоя в обратным смещением. При положительной …Подробнее...