В типичных задачах с массивами цикл 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
)
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.