Цикл foreach
Часть раздела Основы путешествия по PHP на Coddy — урок 49 из 71.
При работе с массивами вам часто нужно пройтись по каждому элементу по одному. Хотя вы могли бы использовать цикл for с индексным счетчиком, PHP предлагает более чистое решение: цикл foreach.
Цикл foreach специально предназначен для итерации по массивам. Он автоматически обрабатывает подсчет и предоставляет прямой доступ к каждому элементу.
<?php
$fruits = ["apple", "banana", "cherry"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
?>Это выводит:
apple
banana
cherryСинтаксис прост: foreach ($array as $item). На каждой итерации следующий элемент из массива присваивается $item, и вы можете использовать его внутри тела цикла.
Сравните это с достижением того же результата с помощью цикла for:
<?php
$fruits = ["apple", "banana", "cherry"];
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits[$i] . "\n";
}
?>Версия с foreach короче и легче читается. Вам не нужно управлять переменной индекса или беспокоиться о длине массива — PHP делает все это за вас.
Задание
ЛегкоПрочитайте одну строку ввода, содержащую список чисел, разделенных запятыми (например, 10,25,5,30,15).
Используйте цикл foreach для перебора массива и вычисления суммы всех чисел. Выведите общую сумму.
Пример 1:
Если ввод 10,25,5,30,15, вывод должен быть:
85Пример 2:
Если ввод 1,2,3,4,5, вывод должен быть:
15Пример 3:
Если ввод 100,200,300, вывод должен быть:
600Шпаргалка
Цикл foreach специально предназначен для итерации по массивам без управления переменными индексов.
Базовый синтаксис:
<?php
foreach ($array as $item) {
// use $item
}
?>Пример:
<?php
$fruits = ["apple", "banana", "cherry"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
?>Это чище, чем использование цикла for со счетчиком индекса, поскольку PHP автоматически обрабатывает подсчет и длину массива.
Попробуйте сами
<?php
// Считываем ввод
$input = trim(fgets(STDIN));
$numbers = explode(',', $input);
// TODO: Напишите свой код ниже для вычисления суммы с использованием цикла foreach
$sum = 0;
// Выводим результат
echo $sum;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators