Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос нашим менторам. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Цикл Foreach

В типичных задачах, связанных с массивами, цикл for избыточен и многословен. Поэтому PHP предлагает альтернативу — цикл foreach:

<?php

$userNames = ['petya', 'vasya', 'evgeny'];

foreach ($userNames as $name) {
  print_r("{$name}\n");
}

foreach значительно проще for. В нём отсутствует счётчик, его проверка и изменение. foreach берёт всю грязную работу целиком на себя. Всё, что надо сделать программисту — назвать переменную для каждого элемента.

У foreach есть и другой вариант использования. Если нам понадобятся индексы массива, то запись станет такой:

<?php

$userNames = ['petya', 'vasya', 'evgeny'];

foreach ($userNames as $index => $name) {
  print_r("{$index}: {$name}\n");
}

Первая переменная осталась исходным массивом, а после as появилась конструкция $key => $value, где ключ – это индекс массива, а значение $value – это значение текущего элемента.

В большинстве реальных задач используется как раз foreach, но иногда его бывает недостаточно, и требуется ручное управление обходом. В таких задачах можно возвращаться к использованию for. Некоторые из них связаны с обходом массива, например, когда нужно идти не по каждому элементу, а через один. Иногда нужно обходить массив в обратном порядке. Другие задачи вообще с массивами напрямую не связаны. К последним относятся ситуации, когда нужно перебирать числа в определённом диапазоне. В этом случае нет массива, по которому можно было бы пройтись с помощью foreach.


Дополнительные материалы

  1. Официальная документация

<span class="translation_missing" title="translation missing: ru.web.courses.lessons.mentors.mentor_avatars">Mentor Avatars</span>

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят менторы из команды Хекслета или другие студенты.

Для полного доступа к курсу нужна профессиональная подписка

Профессиональная подписка откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, даст возможность обращаться за помощью к менторам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
115
курсов
892
упражнения
2241
час теории
3196
тестов

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Отправляя форму, вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг». Защита от спама reCAPTCHA «Конфиденциальность» и «Условия использования».

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг». Защита от спама reCAPTCHA «Конфиденциальность» и «Условия использования».