Цикл foreach для массивов

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Цикл `foreach` — это самый удобный и безопасный способ перебрать элементы массива в PHP. В отличие от `for`, вам не нужно следить за счетчиками и размером массива. `foreach` просто берет массив и проходит по каждому его элементу один за другим. Это делает код более чистым, читаемым и менее подверженным ошибкам. Этот тренажер проведет вас от основ синтаксиса до более сложных техник, таких как работа с ассоциативными массивами и изменение элементов "на лету". Вы научитесь получать как значения, так и ключи элементов, и поймете, почему `foreach` является стандартом для работы с массивами в PHP.

Список тем

Основы синтаксиса: перебор значений

id: 38949_task_fe_1

Простейшее использование `foreach` — это перебор массива для получения только его значений. Заполните пропуски, чтобы создать цикл, который переберет массив `$fruits` и выведет каждый фрукт на новой строке.

Заполните пропуски
<?php

$fruits = ["Яблоко", "Апельсин", "Банан"];

foreach (input1S as input2S) {
    echo $fruit . "\n";
}

?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Соберите цикл foreach

id: 38949_task_fe_2

Из перемешанных строк кода соберите работающий скрипт. Он должен объявить массив с цветами и затем, используя `foreach`, вывести каждый цвет в отдельной строке. Остерегайтесь лишних фрагментов!

Перетяните в правильном порядке строки из одного блока в другой
<?php
}
echo $color . "\n";
foreach ($colors as $color) {
$colors = ["Red", "Green", "Blue"];
while ($color) {
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Перебор с ключом и значением

id: 38949_task_fe_3

Часто нужно получить не только значение элемента, но и его ключ. Для этого `foreach` имеет расширенный синтаксис. Заполните пропуски, чтобы вывести и страну, и ее столицу из ассоциативного массива.

Заполните пропуски
<?php

$capitals = [
    "Италия" => "Рим", 
    "Франция" => "Париж"
];

foreach ($capitals as input1S => input2S) {
    echo "Столица страны " . $country . " — " . $city . ".\n";
}

?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправьте оператор связи

id: 38949_task_fe_4

При переборе массива с ключами и значениями используется специальный оператор. В данном коде он указан неверно, что приведет к синтаксической ошибке. Найдите и исправьте ошибку.

Найдите ошибку и исправьте
<?php
$user = ["name" => "Alex", "role" => "admin"];
 
foreach ($user as $key -> $value) {
    echo "$key: $value\n";
}
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет этот код?

id: 38949_task_fe_5

Внимательно проанализируйте цикл. Он перебирает массив продуктов, но выводит только те, цена которых больше 500. Выберите вариант, который точно соответствует тому, что выведет скрипт.

Выберите правильный вариант ответа
<?php
$products = [
    "Laptop" => 1200,
    "Mouse" => 25,
    "Keyboard" => 100,
    "Monitor" => 600,
];

foreach ($products as $name => $price) {
    if ($price > 500) {
        echo $name . " ";
    }
}
?>
Сообщения
Проверить
Показать подсказку

Подсчет общей суммы

id: 38949_task_fe_6

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

Что должно получиться?
<?php

$prices = [199, 45, 1200];
$total = 0;

foreach ($prices as $price) {
    $total += $price;
}

echo $total;
?>
Сообщения
Проверить
Показать подсказку

Изменение массива по ссылке

id: 38949_task_fe_7

Чтобы изменить значения массива прямо во время перебора, нужно передавать значение по ссылке. Для этого используется специальный символ. Перетащите нужный символ из банка, чтобы код удвоил каждое число в массиве `$numbers`.

Нужно правильно расставить в пропуски предложенные варианты
<?php
$numbers = [1, 5, 10];

foreach ($numbers as input1S $number) {
    $number *= 2;
}

// print_r выводит массив в читаемом виде
print_r($numbers);
?>
&
=>
->
*
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Генерация HTML-списка

id: 38949_task_fe_8

`foreach` идеально подходит для генерации HTML-разметки на основе данных из массива. Расставьте строки кода в правильном порядке, чтобы создать ненумерованный список (`

    `) из элементов массива `$links`.

Расставьте строки в правильном порядке
echo '';
foreach ($links as $link) {
echo "
  • {$link}
  • ";
    $links = ['Главная', 'О нас', 'Контакты'];
    }
    echo '
      ';
    Сообщения
    Проверить
    Показать подсказку
    НайтиКурс.Ру