| Ваш IP: 18.207.240.35 | Online(34) - гости: 23, боты: 11 | Загрузка сервера: 1.03 ::::::::::::


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

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

Войти с помощью: 

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

  • Яркая светодиодная лампа

    Яркая светодиодная лампа

    На рисунке показана схема простой светодиодной лампы работающей от сетевого напряжения 220 В. Конденсатор С1 и сопротивление R1 образуют схему ограничения тока. 10 сверх ярких светодиодов белого свечения подключаются последовательно, полевой транзистор используется для автоматического отключения лампы в дневное время. Сопротивление фоторезистора 100 кОм при полном освещении и уменьшается в …Подробнее...
  • LM5010 — высоковольтный понижающий импульсный преобразователь напряжения

    LM5010 — высоковольтный понижающий импульсный преобразователь напряжения

    LM5010 — высоковольтный понижающий импульсный преобразователь напряжения, обладает широким диапазоном входного напряжения (8-75 В). Частота переключения ШИМ 1 МГц. Ограничение тока в нагрузке 1,25 А. C1 — 2.2 µF, 100V C2 — 15 µF, 25V C3 — 0.1 µF, 16V C4, C6 — 0.022 µF, 16V C5 — 0.1 µF, 100V D1 — SMB 100V, 2A …Подробнее...
  • Радиолы РЕКОРД-60 и РЕКОРД-60М

    Радиолы РЕКОРД-60(М) четырех ламповые супергетеродины, принимающие станции с АМ в диапазонах ДВ, СВ и КВ. С 1960 по 1961годы их выпускал Бердский завод. В радиолах была использована трех скоростная ЭПУ-ЭПУ-5М для РЕКОРД-60 и IIIЭПУ-9 для РЕКОРД-60М. Мощность потребляемая радиолой при проигрывании грам-записи 55Вт и 40Вт при работе на прием. Габариты …Подробнее...
  • TDA1308 — усилитель звуковой мощности, класс AB, 2 канала, 40 мВт

    TDA1308 — усилитель звуковой мощности, класс AB, 2 канала, 40 мВт

    Стерео усилитель на ИМС TDA1308 предназначен для применения в портативных цифровых аудиосистемах, усилитель обеспечивает выходную мощности 40 мВт (80 мВт мах при U пит = 7 В) при напряжении питания 5 В и КНИ не более 0,03 % на нагрузке 32 Ом. Диапазон питания ИМС TDA1308 от 3 до 7 В …Подробнее...
  • Усилитель класса D на TDA8950

    Усилитель класса D на TDA8950

    TDA8950 — высокоэффективный усилитель мощности класса D. Основные характеристики: Выходная мощность 2 × 150 Вт при нагрузке 4 Ом. широкий диапазоне напряжений питания от ±12,5 в до ±40 В рекомендуемое напряжение питания и нагрузка: 2 × 150 ВТ, RН = 4 Ω (ВП = ±37 В) 2 × 170 ВТ, …Подробнее...