- Цикл foreach и инструкции break/continue в PHP
- Цикл foreach
- Прерывание цикла (break)
- Следующая итерация цикла (continue)
- Пример из реального проекта
- Ways to exit from a foreach loop in PHP
- What is a foreach loop in PHP?
- break statement to exit from a foreach loop
- continue statement to skip the execution of a condition
- using goto statement in PHP
- How to Reverse Order of a ForEach Loop in PHP
- How to Reverse Order of a ForEach Loop in PHP
- Solution 1 – Use array_reverse
- Solution 2 – Count the Array Backwards
- PHP foreach Loop
- The PHP foreach Loop
- Syntax
- Examples
- Example
- Example
- COLOR PICKER
- Report Error
- Thank You For Helping Us!
Цикл foreach и инструкции break/continue в PHP
Без цикла foreach не обходится ни один сайт. Разберёмся как его использовать и можно ли прерывать или пропускать итерации цикла.
Цикл foreach
Цикл foreach — это лучший помощник программиста сайтов. Его можно встретить практически в любом коде сайта. А выполняет он очень полезную функцию: обходит массив по элементам. Его синтаксис довольно простой, но потребуется время, чтобы вникнуть. Поэтому начнём с простейшего примера:
Разберём по порядку, что же произошло. Внутри скобок foreach написано $a as $b, что означает: «бери по порядку элементы массива $a и помещай их значение в $b». Что программа и делает: берёт первый элемент массива $a со значением ‘один’ и задаёт это значение переменной $b. А в теле цикла идёт вывод значения «echo $b;«. Как только все команды из тела цикла выполнены, начинается вторая итерация: берётся второй элемент из массива $a со значением ‘два’. Производится то же самое действие. И так далее, пока в массиве не останется элементов.
Давайте усложним задачу и представим, что у массива есть ключи и их тоже надо передавать. А чтобы было не скучно, сделаем ключи текстовыми:
'один', 'two' => 'два', 'three' => 'три' ); foreach( $a as $b => $с )< echo $b; echo ' = '; echo $c; echo '
'; > ?>
one = один two = два three = три
Как можно видеть из примера, цикл отличается выражением в скобках $a as $b => $с. Это выражение означает «бери по порядку элементы массива $a и помещай их значение в $с, а ключи элементов в переменную $b».
Обратите внимание, что если внутри цикла изменить значение переменных $b или $с, то значение переменной $a не поменяется.
Чтобы изменить значение элемента массива $a, можно использовать внутри цикла foreach конструкцию $a[$b] = ‘новое_значение’. Тогда в массиве $a, в элементе с ключом $b, изменится значение на ‘новое_значение’
Прерывание цикла (break)
Бывают случаи, когда надо прервать цикл, выйти из него не продолжая. В этом поможет инструкция break. Попробуем протестировать его:
Слово ‘три’ не будет напечатано, потому что в коде перед ним сработает инструкция break и цикл завершится.
Следующая итерация цикла (continue)
Иногда нужно не завершать цикл, а перейти к следующей итерации, к следующему элементу. Для этого используется инструкция continue:
На элементе со значением ‘два’ сработает инструкция continue и последующие команды не будут выполнены. А вместо этого цикл начнётся заново, взяв следующий элемент массива $a.
Инструкции break и continue работают не только в циклах foreach, но и в циклах while и for.
Обратите внимание, что инструкции break и continue воздействуют только на родительский цикл, в котором находятся. Если несколько циклов вложено один в другой, а инструкция стоит внутри второго, то она никак не повлияет на первый цикл.
Пример из реального проекта
Приведём пример цикла, который приближен к циклу из реального проекта. Этот цикл будет находиться на странице со списком новостей и будет выводить название новости и короткое описание. Сам цикл будет проходить внутри массива, который описывает всю страницу. Именно таким способом программируются современные сайты: в начале «.php» файла вы загружаете данные из базы данных и собираете их большой-большой массив, обрабатываете и подготавливаете для вывода. А во второй части файла вы выводите значение элементов массива вперемешку с HTML кодом, но ничего не считаете и не обращаетесь к базе:
'Название первой новости', 'text' => 'Текст первой новости', ); $arResult['items'][] = array( 'name' => 'Название второй новости', 'text' => 'Текст второй новости', ); ?> ?>
Название первой новости Текст первой новости Название второй новости Текст второй новости
Ways to exit from a foreach loop in PHP
In this article, we will focus on the different exit methods from the foreach loop in PHP. Before that, we will discuss what exactly a foreach loop is.
What is a foreach loop in PHP?
In PHP, the foreach loop is the same as the for a loop. But the difference is that the foreach loop can hold the entire array at a time. Hence, it is used in the case of a numeric array as well as an associative array.
The syntax for a foreach loop is,
In PHP, to break from a foreach loop, following jumping statements are used-
break statement to exit from a foreach loop
The break statement is used to come out of the foreach loop.
The below example illustrates the use of the break statement,
'John','roll_2'=>'Subrat','roll_3'=>'Sumi','roll_4'=>'Jyoti','roll_5'=>'Lucky'); //put a counter $count = 0; //declare when you want to break the execution $brk_val=3; foreach($arr as $key => $val) < echo "Name of $key : $val
"; //Print the value of the Array $count++; //Increment the counter if($count==$brk_val) break; //Break the loop when $count=$brk_val > ?>
Output :-
Name of roll_1 : John Name of roll_2 : Subrat Name of roll_3 : Sumi
continue statement to skip the execution of a condition
The continue statement skips the execution for a specific condition from the foreach loop.
The below example illustrates the use of the continue statement,
'John','roll_2'=>'Subrat','roll_3'=>'Sumi','roll_4'=>'Jyoti','roll_5'=>'Lucky'); foreach($arr as $key => $val) < if($val == 'Jyoti') continue ; //skip the array pair when key value=Jyoti else echo "Name of $key : $val
"; //Print the value of the Array > ?>
Output :-
Name of roll_1 : John Name of roll_2 : Subrat Name of roll_3 : Sumi Name of roll_5 : Lucky
using goto statement in PHP
The goto statement moves the control from one portion to another in the foreach loop.
The below example illustrates the use of the goto statement,
'John','roll_2'=>'Subrat','roll_3'=>'Sumi','roll_4'=>'Jyoti','roll_5'=>'Lucky'); //put a counter $count = 0; //declare when you want to break the execution $brk_val=3; foreach($arr as $key => $val) < echo "Name of $key : $val
"; //Print the value of the Array $count++; //Increment the counter if($count==$brk_val) goto l; //Break the loop when $count=$brk_val > l: ?>
Output :-
Name of roll_1 : John Name of roll_2 : Subrat Name of roll_3 : Sumi
In this way, we can exit from a foreach loop in PHP. If you have any doubts, put a comment below.
How to Reverse Order of a ForEach Loop in PHP
Learn two methods to reverse the order of a foreach loop in PHP.
As a programmer, you will quickly become a master of array manipulation. Luckily, the PHP language comes built-in with tons of useful helper functions to help us work with an array. In this tutorial, we will show you two solutions for reversing the order of a foreach loop in PHP. Let’s take a quick look at what we are trying to achieve.
$data = ['a','b','c','d']; foreach($data as $item) < echo $item; >//OUTPUT: abcd
Here we have a very simple dataset and a foreach loop that traverses it. We want to read this array backwards with our foreach loop so the output would read “dcba.” There are multiple ways to get this done.
How to Reverse Order of a ForEach Loop in PHP
To reverse the order of a foreach loop, you can use the array_reverse method or use a different loop and count through the array backwards. We will look through both solutions in detail here.
Solution 1 – Use array_reverse
PHP comes with a useful function called array_reverse. This method will take in an array and spit out a reversed copy. Let’s take a look at a code example:
$data = ['a','b','c','d']; foreach(array_reverse($data) as $item) < echo $item; >//OUTPUT: dcba
We can easily use the array_reverse function directly in our foreach parameters to reverse our primary array before spitting out the answers. This solution is very clean and gets the job done but might not be the most optimal.
Since we will always know the size of the array, there isn’t anything preventing us from reading the array backwards instead of having to perform an operation that unnecessarily restructures a copy of it. Let’s look at another example that might be a better option for certain use cases.
Solution 2 – Count the Array Backwards
Instead of rebuilding the array in reverse order, we can also just read it backwards. However, for this solution, we will want to swap out our foreach loop with a while loop. Let’s take a look at a code example:
$data = ['a','b','c','d']; $index = count($data); while($index) < echo $data[--$index]; >//OUTPUT: dcba
With this solution, we will first get an index by counting the elements in the array. Then we will create a while loop with the index as our parameter. Inside the while loop, we can call our initial data array directly and decrement the index simultaneously. The while loop will conveniently terminate itself once it reaches the end of the array.
Although the second solution doesn’t technically use a foreach loop, it does achieve the same goal in a more efficient way. You should consider using this technique if your project calls for a reverse order of a ForEach Loop in PHP.
We hope you found this guide helpful. Check out our Coding section for more useful tutorials.
PHP foreach Loop
The foreach loop — Loops through a block of code for each element in an array.
The PHP foreach Loop
The foreach loop works only on arrays, and is used to loop through each key/value pair in an array.
Syntax
For every loop iteration, the value of the current array element is assigned to $value and the array pointer is moved by one, until it reaches the last array element.
Examples
The following example will output the values of the given array ($colors):
Example
foreach ($colors as $value) echo «$value
«;
>
?>
The following example will output both the keys and the values of the given array ($age):
Example
You will learn more about arrays in the PHP Arrays chapter.
COLOR PICKER
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.