Перебор массива в PHP | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив "SQL для анализа данных"
-16%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT IoT-разработчик Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Перебор массива в PHP

В этой статье расскажем о том, как осуществляется перебор элементов массива в языке программирования PHP. И покажем этот процесс на практических примерах.

Для последовательного перебора всех элементов массива в PHP существует цикл foreach. Он подходит для работы и с массивами, и с объектами. При этом следует учесть, что применение его с переменными прочих типов либо с переменными, которые неинициализированы, приведёт к появлению ошибки. Но давайте не будем забегать вперёд и рассмотрим всё по порядку.

Итак, для цикла foreach существуют 2 два вида синтаксиса. Первый из них реализуется так:

    foreach($arrayas$value) {
  инструкции
}

В результате работы кода цикл станет перебирать нужный нам массив $array (вместо $array можно подставить название нашего массива). При этом на каждой итерации значение, которое имеет текущий элемент, будет присваиваться переменной $value (здесь также можете указать нужно вам имя переменной).

Сам по себе оператор цикла foreach является удобным в использовании, т. к. он, по сути, самостоятельно проходит по массиву и читает все его элементы до того момента, пока не достигнет последнего. Оператор удобен тем, что позволяет нам не держать в голове факт, что индексация массива начинается с нуля. К тому же, за пределы массивов он никогда не выходит, в результате чего конструкция цикла помогает избежать наиболее распространенных ошибок.

Рассмотрим работу оператора на примере перебора массива:

    <?php

  $my_arr= array(1, 2, 3, 4, 5);

  foreach($my_arras$value) {
    echo$value, " ";
  }

?>

У оператора foreach есть и другой вид синтаксиса, давайте на него посмотрим:

    foreach($arrayas$key=> $value) {
  инструкции
}

Что особенного в применении этой формы? Дело в том, что на каждой итерации происходит дополнительное присваивание значения текущего ключа переменной $key (вы можете указать иное имя переменной). Вот, как это работает:

    <?php

  $my_arr= array(1, 2, 3, 4, 5);

  foreach($my_arras$key=> $value) {
    echo"[$key] => ", $value, "<br>";
}

?>

Если хотите менять элементы вашего массива внутри цикла напрямую, надо применять ссылку. В таком случае значение присвоится по ссылке.

    <?php

  $my_arr= array(1, 2, 3);
  foreach($my_arras&$value) {
    $value*= 2;
    echo$value;
  }

  /* это необходимо, чтобы следующие записи в
  переменную $value не меняли последний элемент вашего массива */
  unset($value); // разорвать ссылку на последний элемент

?>

На что тут важно обратить внимание? Дело в том, что ссылка на последний элемент вашего массива остаётся даже после завершения работы оператором foreach. В результате мы рекомендуем удалять её посредством функции unset(), как это реализовано в вышеописанном примере. Теперь посмотрим, что произойдёт, если мы не будем применять unset():

    <?php

  $numbers= array(1,2,3,4,5);

  foreach($numbersas&$num) {
    echo$num, " ";
  }

  // Присвоим новое значение переменной $num
  $num= '100';
  echo'<br>';

  foreach($numbersas&$num) {
    echo$num, " ";
  }

?>

Также надо отметить очередной нюанс: ссылку можно применять только в том случае, когда перебираемый нами массив является переменной. К примеру, код ниже работать не будет:

    <?php

  foreach(array(1, 2, 3) as&$value) {
    $value*= 2;
  }

?>

В целом, как видите, ничего сложного в переборе массива на PHP нет. Если же вы хотите получить продвинутые навыки в освоении этого языка, ждём вас на наших курсах!

PHP_970x90-20219-10b307.jpg

Источник

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!