| Ваш IP: 54.161.70.252 | Online(52) - гости: 10, боты: 42 | Загрузка сервера: 2.43 ::::::::::::

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

    Предложное уст-во служит для включения уличного освещения с наступлением темноты и соответственно выключение освещения на рассвете. При установке в осветительный прибор необходимо чтобы в фоторезистор автомата не попадал свет от лампы. Порог срабатывания уст-ва устанавливается подбором R2 (300кОм…3000кОм). Литература — Радиоконструктор 1999-02 Автор: Каравкин В.Подробнее...
  • Простой импульсный генератор

    Простой импульсный генератор

    Генератор импульсов показанный на рисунке состоит всего из двух микросхем и одного транзистора, частота генератора разделена на 6 диапазонов и может меняться в пределах от 1 Гц до 100 кГц. Помимо всего генератор импульсов имеет независимую регулировку частоты следования и скважности, которые настраиваются резисторами R5 и R1 соответственно. Генератор выполнен …Подробнее...
  • Электронный балласт для питания энергосберегающих ламп на FAN7710

    Электронный балласт для питания энергосберегающих ламп на FAN7710

    Электронный балласт предназначен для питания энергосберегающих ламп (люминесцентная лампа) и представляет собой высоковольтный импульсный источник питания. Номинальная мощность лампы при питании от электронного балласта не должна превышать 20 Вт. Электронный балласт состоит из выпрямителя на диодах VD1-VD4, импульсного генератора на ИМС FAN7710 и дросселя L1. Так как ИМС FAN7710 представляет собой двухтактный ключ …Подробнее...