| Ваш IP: 54.92.180.46 | Online(43) - гости: 33, боты: 10 | Загрузка сервера: 1.29 ::::::::::::

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

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

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

  • Простой счетчик

    Простой счетчик

    На рисунке показана схема простого счетчика, основанного на счетчике 74LS90 и дешифраторе 74LS47, наказания счетчика выводятся на семисегментный индикатор с общим анодом. Схема принимает любые сигналы ТТЛ уровня. Кол-во разрядов может быть расширено (см. примечания на схеме) Источник — http://www.aaroncake.net/circuits/counter.aspПодробнее...
  • Инвертор постоянного напряжения

    Существует микросхема TPS60400 которая позволяет инвертировать постоянное напряжение от 1,6В до 5В. Максимальный то нагрузки 50мА, для питания ОУ вполне достаточно. Особое внимание необходимо уделить фильтру от ВЧ помех — L1 C3 C4 — при необходимости необходимо подобрать емкости и индуктивность. Литература — Радиоконструктор 12-2007 Автор: Каравкин В.Подробнее...
  • Преобразователь напряжения для люминесцентной лампы 12В

    Люминесцентные лампы или трубки лампы имеет хорошую яркость и экономичность. На рисунке показа схема преобразователя напряжения для люминесцентной лампы работающего от батареи 12В. Для запуска (зажигания) лампы необходимо на нее подать высокое ионизирующее напряжение 200 и более вольт. После запуска лампы напряжение на ней падает примерно до 40 вольт. Для …Подробнее...
  • Автомат уличного освещения

    Схема автомата, позволяющего автоматически включать вечером и выключать утром уличное освещение, представлена на рис. Датчиком освещенности является фоторезистор R4. Когда он затемнен, его сопротивление  велико (несколько мегаом), на входах логического элемента DD1.1—напряжение высокого уровня, такое же напряжение на выходе элемента DD1.2. Транзистор VT1 и тринистор VS1 открыты, и уличные осветители …Подробнее...
  • Инвертор 100Вт

    На рисунке показана схема инвертора с выходной мощностью 100В и выходным напряжением 220В 50 Гц. Питается инвертор от аккумуляторной батареи 12В. VR1  используется для более точной подстройки частоты 50 Гц, при большом расхождении частоты можно подобрать более точно емкость конденсатора Cx.   ИМС CD4047 используется в качестве генератора 50 Гц …Подробнее...