| Ваш IP: 18.212.93.234 | Online(23) - гости: 16, боты: 7 | Загрузка сервера: 1.06 ::::::::::::

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

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

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

  • Мостовой усилитель 2*5Вт на TDA7266S

    Мостовой усилитель 2*5Вт на TDA7266S

    Усилитель на базе TDA7266S применяется в бытовой технике, имеет фиксированное усиление. Микросхема оснащена тепловой защитой, защитой от КЗ выхода по переменному току. Имеются встроенные функции MUTE и STAND-BY. В усилителе нет параметрической обратной связи. Усилитель на базе TDA7266S имеет следующие технические характеристики: Номинальное напряжение питания 11В Номинальное сопротивление нагрузки 8 …Подробнее...
  • Карманный частотомер (2)

    Частотомер выполнен на микросхемах серии К561 и К176 и имеет люминесцентный 4-х разрядный индикатор. Частотомер имеет 2-а источника питания +9 и 1,5В от батарей типа КРОНА и АА. Диапазон измеряемых частот от 1 до 999кГц. Отображение производится в кГц в 3-х диапазонах 9,999кГц, 99,99кГц и 999,9кГц. Чувствительность 50мВ при входном …Подробнее...
  • Простой УКВ-приемник

    УКВ-приемник работает в диапазоне 64-108МГц. Схема приемника основана на 2-х микросхемах: К174ХА34 и ВА5386, дополнительно в схеме присутствуют 17 конденсаторов и всего 2-а резистора. Колебательный контур один, гетеродинный. На А1 выполнен супергетеродинный УКВ-ЧМ без УНЧ. Сигнал от антенны поступает через С1 на вход ПЧ микросхемы А1(вывод12). Настройка на станцию производится …Подробнее...
  • Преобразователь напряжения 12В/220В

    В связи с частыми отключениями электроэнергии необходимо иметь резервный источник электропитания. Удобно использовать в качестве резервного источника химический, например, автомобильный аккумулятор. Но лампы накаливания и другие маломощные потребители электроэнергии имеют напряжение питания 220 В переменного тока, а номинальное напряжение аккумулятора 12,6 В постоянного тока. В этом случае выручит преобразователь постоянного …Подробнее...
  • САТ3603 — трех канальный светодиодный драйвер

    САТ3603 — трех канальный светодиодный драйвер

    ИМС САТ3603 выдает 30 мА на канал и работает с входным напряжением 3…5.5В. Потребление тока покоя микросхемы крайне мало 0,1мА, что дает возможность питать ее обычной батарейки. Рабочая частота преобразования 1МГц, КПД преобразователя 90%. Имеется зашита выхода от КЗ. Выходной ток икросхемы регулируется при помощи сопротивления R. В таблице указаны …Подробнее...