0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>В этой статье расскажем о том, как осуществляется перебор элементов массива в языке программирования PHP. И покажем этот процесс на практических примерах.</p>
1
<p>В этой статье расскажем о том, как осуществляется перебор элементов массива в языке программирования PHP. И покажем этот процесс на практических примерах.</p>
2
<p>Для последовательного перебора всех элементов массива в PHP существует цикл<strong>foreach</strong>. Он подходит для работы и с массивами, и с объектами. При этом следует учесть, что применение его с переменными прочих типов либо с переменными, которые неинициализированы, приведёт к появлению ошибки. Но давайте не будем забегать вперёд и рассмотрим всё по порядку.</p>
2
<p>Для последовательного перебора всех элементов массива в PHP существует цикл<strong>foreach</strong>. Он подходит для работы и с массивами, и с объектами. При этом следует учесть, что применение его с переменными прочих типов либо с переменными, которые неинициализированы, приведёт к появлению ошибки. Но давайте не будем забегать вперёд и рассмотрим всё по порядку.</p>
3
<p>Итак, для цикла foreach существуют<strong>2 два вида синтаксиса</strong>. Первый из них реализуется так:</p>
3
<p>Итак, для цикла foreach существуют<strong>2 два вида синтаксиса</strong>. Первый из них реализуется так:</p>
4
foreach($arrayas$value) { инструкции }<p>В результате работы кода цикл станет перебирать нужный нам массив<strong>$array</strong>(вместо $array можно подставить название нашего массива). При этом на каждой итерации значение, которое имеет текущий элемент, будет присваиваться переменной<strong>$value</strong>(здесь также можете указать нужно вам имя переменной).</p>
4
foreach($arrayas$value) { инструкции }<p>В результате работы кода цикл станет перебирать нужный нам массив<strong>$array</strong>(вместо $array можно подставить название нашего массива). При этом на каждой итерации значение, которое имеет текущий элемент, будет присваиваться переменной<strong>$value</strong>(здесь также можете указать нужно вам имя переменной).</p>
5
<p>Сам по себе оператор цикла foreach является удобным в использовании, т. к. он, по сути, самостоятельно проходит по массиву и читает все его элементы до того момента, пока не достигнет последнего. Оператор удобен тем, что позволяет нам не держать в голове факт, что индексация массива начинается с нуля. К тому же, за пределы массивов он никогда не выходит, в результате чего конструкция цикла помогает избежать наиболее распространенных ошибок.</p>
5
<p>Сам по себе оператор цикла foreach является удобным в использовании, т. к. он, по сути, самостоятельно проходит по массиву и читает все его элементы до того момента, пока не достигнет последнего. Оператор удобен тем, что позволяет нам не держать в голове факт, что индексация массива начинается с нуля. К тому же, за пределы массивов он никогда не выходит, в результате чего конструкция цикла помогает избежать наиболее распространенных ошибок.</p>
6
<p>Рассмотрим работу оператора на примере перебора массива:</p>
6
<p>Рассмотрим работу оператора на примере перебора массива:</p>
7
<?php $my_arr= array(1, 2, 3, 4, 5); foreach($my_arras$value) { echo$value, " "; } ?><p>У оператора foreach есть и другой вид синтаксиса, давайте на него посмотрим:</p>
7
<?php $my_arr= array(1, 2, 3, 4, 5); foreach($my_arras$value) { echo$value, " "; } ?><p>У оператора foreach есть и другой вид синтаксиса, давайте на него посмотрим:</p>
8
foreach($arrayas$key=> $value) { инструкции }<p>Что особенного в применении этой формы? Дело в том, что на каждой итерации происходит<strong>дополнительное присваивание значения текущего ключа переменной $key</strong>(вы можете указать иное имя переменной). Вот, как это работает:</p>
8
foreach($arrayas$key=> $value) { инструкции }<p>Что особенного в применении этой формы? Дело в том, что на каждой итерации происходит<strong>дополнительное присваивание значения текущего ключа переменной $key</strong>(вы можете указать иное имя переменной). Вот, как это работает:</p>
9
<?php $my_arr= array(1, 2, 3, 4, 5); foreach($my_arras$key=> $value) { echo"[$key] => ", $value, "<br>"; } ?><p>Если хотите менять элементы вашего массива внутри цикла напрямую, надо применять ссылку. В таком случае значение присвоится по ссылке.</p>
9
<?php $my_arr= array(1, 2, 3, 4, 5); foreach($my_arras$key=> $value) { echo"[$key] => ", $value, "<br>"; } ?><p>Если хотите менять элементы вашего массива внутри цикла напрямую, надо применять ссылку. В таком случае значение присвоится по ссылке.</p>
10
<?php $my_arr= array(1, 2, 3); foreach($my_arras&$value) { $value*= 2; echo$value; } /* это необходимо, чтобы следующие записи в переменную $value не меняли последний элемент вашего массива */ unset($value); // разорвать ссылку на последний элемент ?><p>На что тут важно обратить внимание? Дело в том, что ссылка на последний элемент вашего массива остаётся даже после завершения работы оператором<strong>foreach</strong>. В результате мы рекомендуем удалять её посредством функции unset(), как это реализовано в вышеописанном примере. Теперь посмотрим, что произойдёт, если мы не будем применять unset():</p>
10
<?php $my_arr= array(1, 2, 3); foreach($my_arras&$value) { $value*= 2; echo$value; } /* это необходимо, чтобы следующие записи в переменную $value не меняли последний элемент вашего массива */ unset($value); // разорвать ссылку на последний элемент ?><p>На что тут важно обратить внимание? Дело в том, что ссылка на последний элемент вашего массива остаётся даже после завершения работы оператором<strong>foreach</strong>. В результате мы рекомендуем удалять её посредством функции unset(), как это реализовано в вышеописанном примере. Теперь посмотрим, что произойдёт, если мы не будем применять unset():</p>
11
<?php $numbers= array(1,2,3,4,5); foreach($numbersas&$num) { echo$num, " "; } // Присвоим новое значение переменной $num $num= '100'; echo'<br>'; foreach($numbersas&$num) { echo$num, " "; } ?><p>Также надо отметить очередной нюанс: ссылку можно применять только в том случае, когда перебираемый нами массив является переменной. К примеру, код ниже работать не будет:</p>
11
<?php $numbers= array(1,2,3,4,5); foreach($numbersas&$num) { echo$num, " "; } // Присвоим новое значение переменной $num $num= '100'; echo'<br>'; foreach($numbersas&$num) { echo$num, " "; } ?><p>Также надо отметить очередной нюанс: ссылку можно применять только в том случае, когда перебираемый нами массив является переменной. К примеру, код ниже работать не будет:</p>
12
<?php foreach(array(1, 2, 3) as&$value) { $value*= 2; } ?><p>В целом, как видите, ничего сложного в переборе массива на PHP нет. Если же вы хотите получить продвинутые навыки в освоении этого языка, ждём вас на наших курсах!</p>
12
<?php foreach(array(1, 2, 3) as&$value) { $value*= 2; } ?><p>В целом, как видите, ничего сложного в переборе массива на PHP нет. Если же вы хотите получить продвинутые навыки в освоении этого языка, ждём вас на наших курсах!</p>
13
<p><a>Источник</a></p>
13
<p><a>Источник</a></p>
14
14