Работа с массивами

Циклы и массивы

Чаще всего циклы используются для работы с массивами — для перечисления всех элементов массива и выполнения какого-нибудь действия с каждым из этих элементов. Умение использовать циклы и массивы совместно позволяет выполнять множество интересных и разнообразных задач!

Мы уже научились работать с массивами. Например, мы можем показать все значения массива, обратившись к каждому из элементов по его индексу. Но это утомительно: обращаться к каждому из элементов массива по очереди, когда мы хотим показать все его значения.

С помощью циклов показывают содержимое любого массива, и это требует всего несколько строк кода!

Перепишем пример с выводом списка любимых сериалов, задействовав цикл:

<?php
$fav_shows = ["game of thrones", "american horror storry", "walking dead"];
$cur_index = 0;

while ($cur_index < 3) {
    print($fav_shows[$cur_index] . ", ");
    $cur_index = $cur_index + 1;
}

В этом примере цикл выводит элемент по индексу. Индекс теперь находится в переменной $cur_index и начальное значение у него ноль. Значение переменной увеличивается на единицу с каждой итерацией цикла, пока не достигнет трёх. В этот момент условие $cur_index < 3 перестанет быть истинным и цикл остановится, перебрав весь массив.

foreach — специальный цикл для массивов

Циклы в PHP могут быть разных типов. Выше мы познакомились с циклом типа while. Его главная особенность — необходимо указывать выражение в его условии. Но while не единственный вид циклов в PHP. Есть ещё как минимум два других.

Массивы и циклы так часто используются вместе, что разработчики языка даже добавили вид цикла специально для перебора массивов. Цикл называется foreach. Зачем понадобилось придумывать этот цикл?

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

👉  foreach решает все эти проблемы. Его возможности:

  • не требуется писать условие;
  • позволяет получать ключи массива;
  • сам присваивает очередной элемент массива переменной.

Цикл foreach незаменим, когда дело доходит до итерации по ассоциативным массивам. Например: у нас есть данные пользователя, которые хранятся в ассоциативном массиве. На сайте понадобилось сделать страницу с информацией об этом юзере. Задача в том, чтобы показать на странице все данные, которые известны об этом человеке. Выглядеть это должно так:

Имя: Евгений
Возраст: 27
Род занятий: Программист

Оригинальный массив, который надо показать в таком виде:

$user = [
    'Имя' => 'Евгений',
    'Возраст' => '27',
    'Род занятий' => 'Программист'
];

Код сценария, который обойдёт массив и покажет всё его содержимое, займёт всего четыре строчки:

foreach ($user as $key => $value) {
    print($key . ': ');
    print($value . '<br>');
}

На каждой итерации цикла внутри его тела будут определяться переменные $key и $value. В первую будет попадать очередной ключ массива, а во вторую — очередное значение по этому ключу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *