| Ваш IP: 54.80.58.121 | Online(27) - гости: 12, боты: 15 | Загрузка сервера: 1.55 ::::::::::::

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

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

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

  • LT1073  DC-DC преобразователь с фиксированным (5В, 12В) и регулируемым выходным напряжением

    LT1073 DC-DC преобразователь с фиксированным (5В, 12В) и регулируемым выходным напряжением

    Микросхема LT1073 производства Linear Technology представляет собой DC-DC преобразователь фиксированным 5 и 12В и регулируемым выходным напряжением. Входное напряжение питания преобразователя может быть в пределах от 1 до 30 В. Ток потребления не превышает 95 мкА. LT1073 выпускается в компактных 8-контактных MiniDIP или SO8 корпусах. Микросхема может использоваться как повышающий, так и …Подробнее...
  • Квадрапреобразователь на ОУ К153УД2

    Квадрапреобразователь на ОУ К153УД2

    Квадрапреобразователь на ОУ К153УД2, у которого используется фазовращатель и суммарно-разностная матрица. Он имеет следующие основные технические характеристики: Входное напряжение: номинальное………… 0,8 В максимальное………..8 В Номинальный диапазон частот . . . . . . . . 20… 30 000 Гц Коэффициент гармоник………. 0,2% Отношение сигнал-шум (не взвешенное)…… 70 дБ Входное сопротивление………. …Подробнее...
  • Фильтр низких частот для сабвуфера

    Фильтр низких частот для сабвуфера

    ФНЧ для сабвуфера основан на  2-х канальном операционном усилителе с полевым входом, который имеет низкое энергопотребление (200мкА) и высокое входное напряжение. Первый ОУ используется как смеситель каналов, далее сигнал подается на ФНЧ на элементах R5, R6, R7, R8, C4 и C5, далее сигнал поступает на второй ОУ к выходу которого через R10 …Подробнее...
  • Стабилизатор напряжения

    Стабилизатор напряжения

    Стабилизатор напряжения имеет входное напряжение от 13 до 16В и выходное 9В, ток ограничения 600мА, ток КЗ 25…30мА. Датчиком образцового напряжения служит стабилитрон VD1. VD2 — светодиод включенный между базой VT2 и коллектором VT1 защищает стабилитрон от перегрузки и КЗ. В номинальном режиме VD3 открыт, а светодиод VD2 закрыт и …Подробнее...
  • Простой частотомер

    Если нет необходимости в точном измерении частоты, можно применить частотомер-индикатор для простого визиального определения частоты. Частотомер измеряет частоту в диапазоне 1…10кГц с дискретностью 1кГц или в диапазоне 10…100кГц с дискретностью 10кГц. Выбор диапазона осуществляется с помощью переключателя S1. На ОУ(TL072N) выполнен релаксационный генератор, частота которого исходит из формулы f=0.689/(R3*C1 или …Подробнее...