| Ваш IP: 54.156.69.204 | Online(33) - гости: 15, боты: 18 | Загрузка сервера: 4.28 ::::::::::::

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

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

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

  • Маркировка SMD-резисторов

    «Резисторы» нулевого сопротивления (перемычки на плате) кодируются одной цифрой «0». Большее количество знаков обозначает: Кодирование 3 или 4 цифрами ABC обозначает AB•10C Ом например 102 — это 10•10² Ом = 1 кОм ABCD обозначает ABC•10D Ом, точность 1 % (ряд E96) например 1002 — это 100•10² Ом = 10 кОм Кодирование цифра-цифра-буква (JIS-C-5201) …Подробнее...
  • Сигнализатор появления влаги

    Датчик наличия влаги поможет избежать многих проблем при появлении протечек в системах водоснабжения. Главное его достоинство это простота и автономность, в дежурном режиме датчик потребляет всего 1 мкА, а в режиме сигнализации 80 мА. На транзисторах VT1 VT2, резисторах R1 R2, конденсаторе С1 и головке громкоговорителя собран тональный генератор. Питание …Подробнее...
  • Источник питания для приборов на ОУ

    Источник питания для приборов на ОУ

    Для питания приборов на ОУ требуется напряжение +/-10…15В, при токе потребления не более 10-20мА(2-3 ОУ), именно для таких уст-в разработан данный ИБП. Сетевое напряжение гасится до уровня 50В, при помощи параметрического стабилизатора — С1 VD1 C2 VD2. Этим напряжением питается 2-х тактный импульсный генератор на VT1 VT2 собранный по схеме …Подробнее...
  • К1156ЕУ1 — УНИВЕРСАЛЬНЫЙ ИМПУЛЬСНЫЙ СТАБИЛИЗАТОР НАПРЯЖЕНИЯ

    К1156ЕУ1 — УНИВЕРСАЛЬНЫЙ ИМПУЛЬСНЫЙ СТАБИЛИЗАТОР НАПРЯЖЕНИЯ

    Микросхема 1156ЕУ1 представляет из себя набор функциональных элементов предназначенный для построения импульсного стабилизатора повышающего, понижающего или инверсного типа. Прибор К1156ЕУ1Т выпускается в металлокерамическом корпусе типа 4112.16-3, а КР1156ЕУ1 – в пластмассовом корпусе типа 283.16-2. ОСОБЕННОСТИ • Рассчитан для понижающих, повышающих и инвертирующих импульсных стабилизаторов • Регулировка выходного напряжения 1,25…40В • Выходной импульсный ток………..<1,5А …Подробнее...
  • Расчет емкости балластного конденсатора для бестрансформаторного блока питания

    Расчет емкости балластного конденсатора для бестрансформаторного блока питания

    Бестрансформаторные источники питания с гасящим конденсатором удобны своей простотой, имеют малые габариты и массу, но не всегда применимы из-за гальванической связи выходной цепи с сетью 220 В. В бестрансформаторном источнике питания к сети переменного напряжения подключены последовательно соединенные конденсатор и нагрузка. Неполярный конденсатор, включенный в цепь переменного тока, ведет себя как …Подробнее...