Цикли у PHP. Цикл PHP foreach: два способи його використання Php подвійний рахунок у циклі

Навряд чи ви зможете написати серйозний сценарій на PHP, не використовуючи цикли. Що таке цикл? Це особливий вид керуючої конструкції, що дозволяють багаторазово (і навіть нескінченно) виконувати один і той самий код. У PHP підтримуються такі цикли:

Перші три цикли ви, швидше за все, зможете зустріти у більшості мов програмування. Цикли, залежно від умов, можна переривати або продовжувати (переходити до наступної ітерації, не виконуючи тіло циклу). Давайте розглянемо докладніше кожен із циклів.

Цикл for

Синтаксис циклу для наступного.

For(ініціалізація; умова; команди_після_ітерації) ( тіло_циклу; )

У блоці ініціалізації завжди ініціалізується лічильник, а також інші змінні (якщо необхідно). У блоці умови вказується, у який момент робота циклу має бути припинена. У блоці команд, що виконуються після кожного проходження циклу, зазвичай змінюється значення лічильника, а також інших змінних (якщо необхідно).

// Масив значень $array = array("Яблуко", "Картопля", "Кавун", "Квітка", "Вода", "Ртуть", "Кисень", "Пшениця", "Росія", "Москва", " Злива"); // Умова циклу звучить так: поки лічильник не досягне значення, що дорівнює кількості // елементів масиву, тіло циклу виконується for($i = 0; $i< count($array); $i++) { print "
".($i + 1).". ".$array[$i]."."; ) /* Результат роботи циклу буде таким: 1. Яблуко. 2. Картопля. 3. Кавун. 4. Квітка. 5. Вода. 6. Ртуть. 7. Кисень. 8. Пшениця 9. Росія 10. Москва 11. Злива.

Так як лічильник $i починався з нуля, при кожній ітерації ми до його значення додавали одиницю, щоб список виглядав звичнішим. Після кожної ітерцації значення лічильника збільшувалося на одиницю, і коли воно досягло 11 цикл зупинився. Тепер погляньмо на цикл do-while.

Цикл do-while

Цикл do-while відрізняється тим, що він працює за умовою. Це означає, що код, укладений у тілі циклу, виконається щонайменше один раз. Синтаксис циклу такий:

Do ( тіло_цикла; ) while (умова);

Цей цикл використовується досить рідко при веб-програмуванні, але може він вам і знадобиться у ваших сценаріях.

// Вже знайомий нам масив $array = array("Яблуко", "Картопля", "Кавун", "Квітка", "Вода", "Ртуть", "Кисень", "Пшениця", "Росія", "Москва") , "Злива"); // Запускаємо цикл $i = 1; do ( print "
".$i.". ".$array[($i - 1)]."."; ) while($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Зверніть увагу на відмінність того, що ми виводимо на екран у цьому циклі від циклу for . Оскільки код у тілі циклу do-while виконується щонайменше один раз, початкове значення лічильника було встановлено нульовим. Як працює цикл… виконується код, потім перевіряється умова. При першій ітерації лічильник мав значення 1. Після ітерації одиниця виявилася меншою за 11 (кількості елементів). При останній ітерації лічильник мав значення 11, а це не менше 11. Цикл зупинився. На do-while дуже схожий цикл while.

Цикл while

Цикл while є передумовним. Він виконається лише тоді, коли його умова є істинною. Тобто цикл while може і не виконатись зовсім. Його ситаксис такий:

While(умова) ( тіло_цикла; )

Поряд із циклом for цикл while використовується дуже часто.

$array = array("Яблуко", "Картопля", "Кавун", "Квітка", "Вода", "Ртуть", "Кисень", "Пшениця", "Росія", "Москва", "Злива"); $i = 1; while($i++<= count($array)) { print "
".$i.". ".$array[($i - 1)]."."; ) /* Результат роботи циклу буде таким: 1. Яблуко. 2. Картопля. 3. Кавун. 4. Квітка. 5. Вода. 6. Ртуть. 7. Кисень 8. Пшениця 9. Росія 10. Москва 11. Злива.

Цикл while для розробників-початківців найбільш простий і зрозумілий.

Цикл foreach

Цикл foreach не схожий на всі перераховані. Він з'явився у PHP4, призначений для перебору масивів. Розробнику не потрібно нічого вигадувати для цього. Все легко та просто:

/** * Цикл foreach слід розуміти як «для кожного». * Масив, що обробляється циклом, передається змінною, яка доступна тільки всередині тіла циклу. За бажанням можна звертатися * і до ключів масиву. */ foreach(масив as елемент_масиву) ( тіло_циклу; ) foreach(масив as ключ_масиву => елемент_масиву) ( тіло_циклу; )

Принцип роботи циклу foreach зовсім не такий як у циклів for , while і do-while . Тому для недосвідчених розробників досить непросто зрозуміти, що саме з його допомогою можна (і навіть потрібно) робити.

// Змінимо вже знайомий нам масив. Зробимо його асоціативним. $array = array("Яблуко" => "фрукт", "Картопля" => "овоч", "Кавун" => "ягода", "Квітка" => "рослина", "Вода" => "рідина", "Ртуть" => "метал", "Кисень" => "газ", "Пшениця" => "хліб", "Росія" => "наша Батьківщина", "Москва" => "столиця нашої Батьківщини", "Злив "=> "попадос"); $i = 1; // Можемо зробити так foreach($array as $v) ( print "
".$i.". ".$v."."; $i++; ) /* Отримаємо такий ось несподіваний результат 1. фрукт. 2. овоч. 3. ягода. 4. рослина. 5. рідина. 6. метал. 7. газ. 8. хліб 9. наша Батьківщина 10. столиця нашої Батьківщини 11. попадос. */ // А тепер зробимо інакше foreach
".$i.". ".$k." - це ".$v."."; $i++; ) /* Тепер результат буде таким 1. Яблуко - це фрукт. 2. Картопля - це овочі. 3. Кавун - це ягода. 4. Квітка - це рослина. 6. Ртуть - це метал 7. Кисень - це газ 8. Пшениця - це хліб 9. Росія - це наша Батьківщина 10. Москва - це столиця нашої Батьківщини 11. Злива - це попадос */

Розумієте, як працює цей цикл? Якщо ні, можете поставити запитання у коментарях до матеріалу.

У будь-якому циклі можна використовувати конструкції breakабо continue. Іноді немає сенсу продовжувати роботу циклу чи треба перейти до наступної ітерації.

$array = array("Яблуко" => "фрукт", "Картопля" => "овоч", "Кавун" => "ягода", "Квітка" => "рослина", "Вода" => "рідина", "Ртуть" => "метал", "Кисень" => "газ", "Пшениця" => "хліб", "Росія" => "наша Батьківщина", "Москва" => "столиця нашої Батьківщини", "Злив "=> "попадос"); $i = 1; // Приклад роботи циклу з конструкцією continue foreach($array as $k => $v) ( if($k != "Кисень") continue; print "
".$i.". ".$k." - це ".$v."."; $i++; ) /* Результат буде таким 1. Кисень - це газ. */ $i = 1; // Приклад роботи циклу з конструкцією break foreach($array as $k = > $v) ( if($k == "Кисень") break; print "
".$i.". ".$k." - це ".$v."."; $i++; ) /* Результат буде таким 1. Яблуко - це фрукт. 2. Картопля - це овочі. 3. Кавун - це ягода. 4. Квітка - це рослина. Вода – це рідина 6. Ртуть – це метал.

Нотатка:активовано адаптивну версію сайту, яка автоматично підлаштовується під невеликий розмір Вашого браузера та приховує деякі деталі сайту для зручності читання. Приємного перегляду!

Здрастуйте дорогі читачі та постійні передплатники! Настав час продовжити цикл статей про PHP і сьогодні ми вивчимо таку базову і дуже важливу річ, як цикли. Що вам потрібно знати про цикли насамперед? А те, що застосовуються скрізь і всюди, і шаблони Joomla, VirtueMart, Wordpress, OpenCart і будь-який інший CMS - не виняток.

Що таке цикл? Цикл- Це багаторазове повторення однієї і тієї ж ділянки коду. Скільки потрібно зробити повторень – залежить від лічильника циклу, який ми створюємо і можемо ним управляти. Це дуже зручно, наприклад, коли нам потрібно відмалювати товари в категорії інтернет-магазину, вивести пости в блозі, вивести коментарі до статті або товару, все меню в CMS (движках сайтів) зроблено також за допомогою циклів. Загалом цикли використовуються дуже часто.

Але перш ніж перейти до самих циклів, спочатку потрібно розоритися з такою річчю як оператори інкрементаі декременту.

Оператор ++ (інкремент) збільшує значення змінної на одиницю, тоді як оператор - (декремент) зменшує значення змінної на одиницю. Їх дуже зручно використовувати у циклах як лічильник, та й у програмуванні загалом. Розрізняють також ПРЕ інкремент/декремент та ПОСТ інкремент/декремент:

PRE инкремент/декремент ++$a Збільшує $a на одиницю і повертає значення $a. --$a Зменшує $a на одиницю і повертає значення $a. POST інкремент/декремент $a++ Повертає значення $a, а потім збільшує $a на одиницю. $a-- Повертає значення $a, а потім зменшує $a на одиницю.

Наприклад:

$a = 1; echo "Виведення числа: " . $a++; // Виведення числа: 1 echo "Виведення числа:". $a; // Виведення числа: 2 echo "Виведення числа: $a"; $a += 1; // Те саме, що і в першому рядку$a = 1; echo "Виведення числа: " . ++$a; // Виведення числа: 2 echo "Виведення числа: ". $a; // Виведення числа: 2 $a += 1; echo "Виведення числа: $a"; // Теж саме, що і в першому рядку цього блоку

Цикл for

for (частина А; частина В; частина С)( // Будь-який код, скільки завгодно рядків; )

Цикл for складається з 3 частин і тіла. Частина Апросто виконує те, що в ній написано, як правило, у 90% випадків там створюється лічильник циклу. Частина В- це, грубо кажучи, вже знайомий нам ifтобто перевірка на істину (true?). Якщо умова вірна, то є trueтоді PHP заходить всередину циклу і продовжує його виконувати. Частина С- Те саме що частина А, як правило в Частині С ми робимо якісь перетворення з лічильником. Наприклад:

"; ) echo "ВИЙШЛИ З ЦИКЛУ і пішли далі за кодом..."; ?>

Тепер про алгоритм роботи циклу for. Насамперед, побачивши for, PHP заходить у частину А і виконує її один раз (див. зображення нижче). Далі PHP переходить у частину і перевіряє, true там чи false. Якщо true, то виконує тіло циклу і тільки після цього переходить у частину С. Після цього PHP знову переходить у частину В і перевіряє, чи досі true чи вже ні. Якщо ні, то цикл закінчується, якщо так, то продовжується до тих пір, поки в частині не буде false.

Результат роботи попереднього прикладу:

Цикл While

while (частина У)( // Будь-який код, скільки завгодно рядків; )

Як бачите, тут немає частини А і частини С, з циклу for тут залишилася тільки умова, тобто частина В. Якщо нам потрібно використовувати лічильник, то ми повинні помістити його всередину циклу while, серед іншого коду, це буде частина С. А створювати лічильник потрібно до початку конструкції while:

Частина А; while (частина У)( // Будь-який код, скільки завгодно рядків; Частина З; )

Переробимо попередній цикл for у цикл while:

"; $i++; ) echo "ВИЙШЛИ З ЦИКЛУ і пішли далі за кодом..."; ?>

Результат буде таким самим. Що використовувати: цикл for або цикл while – справа смаку, дивіться як вам зручніше та логічніше, різниці немає.

Цикл do... while

Менш поширений із усіх видів циклів. Насправді це перекинутий while. Його фішка в тому, що PHP хоча б один раз (перший), але обов'язково зайде в тіло циклу do... while, тому що в цьому циклі умова в кінці:

Частина А; do( // Будь-який код, скільки завгодно рядків; Частина С; )while(Частина В);

"; $i++; )while($i< 8); echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

Важливо розуміти: у всіх трьох видах циклів немає обов'язкових елементів.

Приклад циклу for без частини А та частини С:

For(;$i > 8;)( // ваш код )

Приклад циклу для всіх трьох частин:

For(;;)( // класичний нескінченний цикл)

Тобто всі крапки з комою все одно залишаються в циклі for, такий синтаксис!

Нескінченні цикли

Нескінченний цикл – це помилка розробника, коли сторінка будь-коли зможе завантажитися остаточно, оскільки умова циклу (частина У) завжди буде true. Наприклад:

"; $i++; )while($i != 0); echo "ВИЙШЛИ З ЦИКЛУ і пішли далі за кодом..."; ?>

Результат:

Це я показав лише частину, тому що в екран все не вміщується. Ось так ваш браузер і сервер вашого сайту будуть мучитися нескінченно, поки браузер не відмовить секунд через 30. А все тому, що в прикладі вище змінна $i ніколи не дорівнюватиме нулю, вона спочатку дорівнює 1 і постійно зростає.

Тобто розробник був неуважним, коли вигадав таку умову.

Управління циклами

Оператор break.Бувають ситуації, коли нам не потрібно, щоб цикл відігравав усі ітерації (повторення). Наприклад, у певний момент ми хочемо його перервати і продовжити виконання нижче за кодом:

"; if ($i === 5) break; // виходимо з циклу якщо $i дорівнює 5 $i++; ) echo "Я вмію рахувати тільки до 5:("; ?>

Результат:

У прикладі вище, як тільки ми дійшли до п'яти, PHP вийшов з циклу, а так би він дорахував до 7.

Оператор continueтеж перериває виконання циклу, але на відміну від break, continue не виходить із циклу, а повертає інтерпретатор PHP назад до умови (до частини В). Приклад:

"; ) echo "Щось пропустив?"; ?>

Результат:

Щойно ми пропустили цифру 5, оскільки PHP не дійшов до echo.

Цикл може бути вкладений у цикл. У такому випадку оператори continue і break поширюються лише на один цикл, в якому вони знаходяться. Тобто іншими словами перекидають на один рівень, а не через усі. Приклад:

Але ми й самі можемо вибирати, через скільки рівнів потрібно перестрибнути:

"; $i++; $i=1; $k=1; while ($k< 8) { echo "Итерация $k номер ". $k . "
"; if ($k === 5) break 2; $k++; ) ) ?>

Результат:

Звичайно, при цьому ми не можемо ставити число більше, ніж у нас вкладених циклів.

Цикл foreach

Найостанніший по порядку, але найважливіший за значенням це цикл foreach. Використовується тількидля перебору та об'єктів (їх вивчати ще зарано). Приклад синтаксису:

"; } ?>

Результат:

Це була коротка конструкція foreach, але вона має й розширену версію, яка крім значення осередків масиву виводить ще й назви осередків (ключі):

$value) ( ​​echo "У розділі " . $key . "є стаття під назвою: ". $value . "
"; } ?>

Результат:

Звертаю вашу увагу, що змінні ми можемо називати як захочемо, хоч $key і $value, хоч $xxx і $yyy.

Якщо масив, то використовуємо тільки цикл наперед і ніяких інших. Саме цей цикл використовується всюди VirtueMart, та й взагалі скрізь.

Останнє оновлення: 1.11.2015

Для здійснення повторюваних дій у PHP, як і інших мовах програмування, використовуються цикли. У PHP є такі види циклів:

Цикл for

Цикл for має таке формальне визначення:

For ([ініціалізація лічильника]; [умова]; [зміна лічильника]) ( // дії )

Розглянемо стандартний цикл for:

"; } ?>

Перша частина оголошення циклу – $i = 1 – створює та ініціалізує лічильник – змінну $i. І перед виконанням циклу його значення дорівнюватиме 1. По суті це те ж саме, що і оголошення змінної.

Друга частина - умова, за якої виконуватиметься цикл. У цьому випадку цикл буде виконуватися доки $i не досягне 10.

Третя частина - збільшення лічильника на одиницю. Знову ж таки нам необов'язково збільшувати на одиницю. Можна зменшувати: $i--.

У результаті блок циклу спрацює 9 разів, поки значення $i не стане рівним 10. І щоразу це значення збільшуватиметься на 1. Кожне окреме повторення циклу називається ітерацією. Отже, у разі відбудеться 9 ітерацій.

Цикл while

Цикл while перевіряє істинність деякої умови, і якщо умова істинна, то виконуються блоки виразів циклу:

"; $counter++; ) ?>

Якщо в блоці while лише одна інструкція, то фігурні дужки блоку можна опустити:

"; ?>

Цикл do..while

Цикл do..while схожий на цикл while тільки тепер виконується блок циклу, і тільки потім виконується перевірка умови. Тобто навіть якщо умова хибна, то блок циклу виконається щонайменше один раз:

"; $counter++; ) while($counter<10) ?>

Оператори continue та break

Іноді виникає ситуація, коли потрібно вийти з циклу, не чекаючи на його завершення. У цьому випадку ми можемо скористатися оператором break:

80) ( break; ) echo "Квадрат числа $i дорівнює $result
"; } ?>

І якщо раптом результат операції виявиться більше 80, відбувається вихід з циклу.

Для управління циклами також застосовується оператор continue. Він здійснює перехід до наступної ітерації циклу:

"; } ?>

При виконанні програми, коли значення $i дорівнюватиме 5, відбудеться перехід до наступної ітерації, а решта виразів, які слідують після оператора continue виконуватися не будуть.

Цикл for є одним із найчастіше використовуваних циклів у будь-якій мові програмування. У цій статті ми докладно розглянемо цикл для PHP.

Оператор циклу for PHP

Цикл for PHP виконує блок коду певну кількість разів на основі лічильника. При цьому кількість разів, який блок коду повинен бути виконаний, визначається попередньо до входу в тіло циклу.

for є одним із найскладніших видів циклу. У PHP цикл for веде себе аналогічно C . Нижче наведено структуру синтаксису:

for(expression1;expression2;expression3) statement;

У наведеному вище описі ключове слово for свідчить про цикл. У дужках визначаються вирази, а потім інструкція, яку потрібно виконати.

Як працює цикл for у PHP?

Щоб зрозуміти, як працює цикл for, нам потрібно зрозуміти ці три вирази. Вираз: expresison1 є першим, яке виконується лише один раз перед входом у цикл. Воно виконується беззастережно. Це означає, що перед входом у цикл вираз буде виконано.

Expresison1 називається ініціалізуючим виразом, оскільки воно використовується для ініціалізації лічильника, який використовується у виразах expression2 та expression3 .

Expression2 ( перевірка умови) перевіряється для того, щоб визначити чи дозволяє умова виконати інструкцію чи ні. Перший раз воно запускається після expression1, потім перед входом в цикл.

Зазвичай, expression2 містить умовний оператор, щоб перевірити, чи повертає умову true або false . Якщо умова поверне true , тоді виконуватиметься оператор, написаний у циклі.

Expression3 виконується наприкінці кожної ітерації після оператора циклу. Зазвичай програмісти називають його виразом інкременту. Воно використовують цей вираз для збільшення значення лічильника, який був ініціалізований у expression1 та проаналізований у expression2 .

Усі три висловлювання є обов'язковими. Також можна створити PHP цикл, як показано нижче:

for(;;) statement;

for(;expression2;expression3) statement;

Якщо у нас кілька рядків у циклі for , використовуйте фігурні дужки, як показано нижче:

for(expression1;expression2;expression3)( statement1; statement2; statement3; )

Блок-схема циклу for

На першому кроці виконується вираз expression1. Якщо ви уважно подивіться блок-схему, виявите, що для expression1 не існує умови. Вираз expression1 схожий на потік програми, що виконується.

На наступному кроці відразу після виразу expression1 виконується expression2. Воно перевіряє, чи виконується умова циклу. Якщо умова істинна, далі буде виконуватися цикл, інакше потік вийде з циклу.

Якщо expression2 поверне true , то третьому кроці буде виконано оператор, написаний у циклі for . Після цього буде виконано третій вираз expression3.

Після виконання виразу expression3 потік знову перевіряє expression2 і цикл триває доти, поки expression2 не поверне false .

Простий приклад циклу for в PHP

Розглянемо випадок, коли потрібно вивести на екран числа від 1 до 10 через кому. Нижче наведено код:

for($i=1;$i<=10;$i++) print $i.",";

Або з фігурною дужкою:

for($i=1;$i<=10;$i++) { print $i.","; }

Вираз $i=1 є expression1 , яке виконується беззастережно. Ми використовуємо expression1 для ініціалізації змінної, що дорівнює $i=1 .

Expression2 – це вираз $i:

$i=1; for(;$i<=10;$i++) { print $i.","; }

$i=1; for(;$i<=10;) { print $i.","; $i++; }

Складний вираз у циклі for

Можна написати три вирази в циклі for. Ми можемо написати кілька операторів у кожному виразі в циклі for. Оператори потрібно розділити комою.

Розглянемо приклад попереднього коду виведення числа від 1 до 10 . За допомогою кількох операторів у виразі можна написати код, наведений нижче:

for($i=1; $i<=10; print $i . ",", $i++);

Тут вираз expression3 – це print $i.’,’, $i++ , що об'єднує два оператори, один – print $i. ',', а другий – $ i++.

Вище наведено приклад, у якому ми використовували кілька операторів у виразі expression3. Але також можна використовувати кілька операторів у будь-якому виразі. Наприклад:

Аналогічно можна вивести всі непарні числа менше 10 за допомогою наступного коду:

Масив і цикл for в PHP

За допомогою циклу PHP for можна виконувати ітерацію в масиві. Наприклад, ми маємо масив, який містить імена різних людей. Нам потрібно вивести на екран усі імена:

$names = array("Ankur", "John", "Joy"); $ count = count ($ names); for($counter=0;$counter<$count;$counter++){ print $names[$counter]; }

Також можна використовувати багатовимірний масив у циклі for:

$names = array(array("id" => 1, "name" => "Ankur"), array("id" => 2, "name" => "Joe"), array("id" => 3, "name" => "John"),); $ count = count ($ names); for ($counter = 0; $counter< $count; $counter++) { print "Name".$names[$counter]["name"]." ID".$names[$counter]["id"]."n"; }

Вкладений цикл for

Можна використовувати вкладений цикл for PHP . Приклад:

$metrix = array(array(1, 2, 3), array(2, 1, 3), array(3, 2, 1),); $ count = count ($ metrix); for ($counter = 0; $counter< $count; $counter++) { $c_count = count($metrix[$counter]); for ($child = 0; $child < $c_count; $child++) { echo $metrix[$counter][$child]; } }

У нас є багатовимірний масив, і ми використовуємо два цикли для PHP для відображення значень його елементів.

При використанні вкладеного циклу можна використовувати вираз батьківського циклу для дочірнього. Наприклад:

for ($i = 1; $i<= 5; $i++) { for ($j = 1; $j <= $i; $j++) { echo "*"; } echo "
"; }

Наведена вище програма є однією з найпопулярніших для виведення символу у формі прямокутного трикутника.

Інкремент у циклі for

Майже в кожному з наведених вище прикладів ми використовували вираз expression3, тобто останній вираз як інструкцію інкременту. Також ми часто збільшували значення на одиницю у всіх прикладах, наприклад $i++ або $j++ і так далі. Але ми можемо збільшувати лічильник відповідно до наших вимог. Наприклад, щоб вивести всі непарні числа від 1 до 15 можна ініціалізувати цикл значенням 1 і виконувати ітерації до 15, збільшуючи лічильник на 2 :

for($counter = 1; $counter<=15;$counter=$counter+2){ print $counter.","; }

Результатом роботи наведеного вище коду буде « 1,3,5,7,9,11,13,15 ». Тут ми збільшуємо змінну лічильника на +2 за допомогою $counter=$counter+2 .

Вихід із циклу for

Можна перервати цикл за певної умови за допомогою ключового слова break . Воно не є частиною циклу і використовується для переривання виконання операторів for, foreach, while, do-while та switch. Погляньмо, як ключове слово break зупиняє цикл for .

Простий приклад, в якому ми виводимо всі числа в масиві до 100:

$series = array(1, 8, 5, 3, 100, 9, 7); for ($i = 0, $count = count($series); $i<= $count; $i++) { if (100 == $series[$i]) { break; } echo $series[$i] . " "; }

Тут ми перериваємо цикл, перевіривши, чи значення елемента масиву 100 .

Також можна перервати вкладений PHP цикл масиву, передавши глибину, наприклад, break 1 , break 2 і так далі. Подивіться наведений нижче приклад:

for ($i = 0;; $i++) ( switch ($i) ( case 1: echo "This is one "; break 1; // Це перерве тільки оператор switch case 2: echo "This is two "; break 1 // Це знову перерве тільки оператор switch case 3: echo "This is three"; break 2; //Це перерве і switch, і цикл for))

Тут break 1 перериває оператор switch, але break 2 перерве поточний оператор, а також батьківський, тобто і switch, і for.

Використання continue у циклі for

У попередньому розділі ми дізналися, як вийти із циклу. Але що якщо потрібно пропустити одну ітерацію циклу і повернутися назад до циклу? Для цього в PHP є ключове слово continue.

Згадаймо приклад виведення непарних чисел. Все, що ми зробили, це почали цикл з 1, збільшували лічильник на 2 та виводили результат. Реалізуємо цей приклад, використовуючи continue :

for ($i = 0; $i< 20; $i++) { if ($i % 2 == 0) { continue; } echo $i . ","; }

У наведеному вище прикладі ми перевіряємо вираз $i%2 == 0 і якщо воно вірно, використовуючи ключове слово continue , ми пропускаємо решту циклу і повертаємося до виразу expression3 ($i++) , а потім до expression2 ($i :

Іноді потрібно перенести дані з таблиці бази даних масив за допомогою PHP .

Цикл PHP foreach можна використовувати так:

foreach($array_name as $value)( //код, який повинен виконуватися)

foreach($array_name as $key =>$value)( // //код, який повинен виконуватися)

Приклад використання циклу foreach з числовим масивом

У цьому прикладі ми створимо масив із п'яти елементів з числовими значеннями. Після цього цикл PHP foreach буде використано для виконання ітерації цього масиву. Всередині циклу foreach ми використовували echo, щоб вивести значення масиву:

Переглянути демо-версію та код

Приклад з ключами та значеннями масиву

У цьому прикладі описаний інший спосіб використання циклу foreach PHP. Для цього ми створили асоціативний масив із трьох елементів. До нього входять імена співробітників ( як ключі) та суми заробітної плати ( як значення):

Переглянути демо-версію та код

Приклад зміни значення елемента масиву в циклі foreach

Також можна за допомогою PHP array foreach можна змінювати значення елементів масиву. Для цього використовується "&" перед "$" для змінної значення. Наприклад:

&$value_of_element

Значення буде змінено. Щоб вам було зрозуміліше, розглянемо такий приклад.

У цьому прикладі ми створили числовий масив із п'яти елементів. Після цього використовували цикл foreach для відображення значень елементів.

Потім створили ще один цикл foreach , де $value_of_element додається «& «. Усередині фігурних дужок надають нові значення елементам масиву.

Щоб побачити різницю до і після надання нових значень, масив відображається за допомогою функції print_r() .

Переглянути демо-версію та код

Навіщо використовується цикл PHP foreach?

Цикл PHP foreach використовується для роботи з масивом. Він перебирає кожен його елемент.

Також можна використовувати для роботи з масивами цикл for. Наприклад, використовуючи властивість length , щоб отримати довжину масиву, а потім застосувати його як оператор max . Але foreach робить це простіше, тому що він призначений для роботи з масивами.

Якщо ви працюєте з MySQL, то для цього цей цикл підходить ще більше. Наприклад, можна вибрати кілька рядків із таблиці БД і передати їх у масив. Після цього, використовуючи цикл foreach, перебрати всі елементи масиву з виконанням будь-якої дії.

Зверніть увагу, що можна використовувати цикл foreach з масивом або тільки з об'єктом.

Застосування циклу foreach

У PHP існує два способи використання циклу foreach PHP. Обидва описані нижче.

  • Синтаксис першого методу використання:

foreach($array_name як $value)( echo $value )

При цьому потрібно вказати ім'я масиву, а потім змінну $value.

Для кожної ітерації значення поточного елемента надається змінною $ value . Після завершення ітерації змінної надається значення наступного елемента. І так доти, доки всі елементи масиву не будуть перебрані.

  • Синтаксис другого методу ( PHP foreach as key value):

Це підходить для асоціативних масивів, у яких використовуються пари ключ/значення.

Під час виконання кожної ітерації значення поточного елемента буде надано змінною $value_of_element. Крім цього, ключ елемента присвоюється змінною $key_of_element.

Якщо ви працюєте з числовими масивами, можна використовувати перший метод, в якому не потрібні ключі елементів.

Дана публікація є перекладом статті « PHP foreach loop 2 ways to use it» , підготовленою дружною командою проекту