РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1019 of 1392 menu

Метод each

Метод each применяется к коллекции и позволяет выполнить заданную callback-функцию для каждого элемента. Первым параметром передаётся функция обратного вызова, которая получает текущий элемент и, опционально, его ключ или индекс. Если callback возвращает false, итерация прерывается. Метод возвращает исходную коллекцию, что позволяет строить цепочки вызовов.

Синтаксис

<?php $collection->each(callable $callback); ?>

Пример

Давайте переберём коллекцию чисел и выведем каждое из них на экран:

<?php use Illuminate\Support\Collection; $collection = new Collection([1, 2, 3, 4, 5]); $collection->each(function ($item) { echo $item; }); ?>

Результат выполнения кода:

"12345"

Пример

Давайте выведем элементы коллекции с их ключами:

<?php use Illuminate\Support\Collection; $collection = new Collection(['a' => 1, 'b' => 2, 'c' => 3]); $collection->each(function ($value, $key) { echo "$key: $value"; }); ?>

Результат выполнения кода:

"a: 1b: 2c: 3"

Пример

Давайте прервём итерацию, когда встретится элемент 3:

<?php use Illuminate\Support\Collection; $collection = new Collection([1, 2, 3, 4, 5]); $collection->each(function ($item) { if ($item === 3) { return false; } echo $item; }); ?>

Результат выполнения кода:

"12"

Пример

Давайте используем метод each в цепочке с другими методами коллекции:

<?php use Illuminate\Support\Collection; $collection = new Collection([1, 2, 3, 4, 5]); $res = $collection->filter(function ($item) { return $item % 2 === 0; })->each(function ($item) { echo $item * 2; }); ?>

Результат выполнения кода:

"48"

Пример

Давайте используем метод each для изменения элементов коллекции по ссылке:

<?php use Illuminate\Support\Collection; $collection = new Collection(['a', 'b', 'c', 'd', 'e']); $collection->each(function (&$item) { $item = strtoupper($item); }); $res = $collection->all(); ?>

Результат выполнения кода:

["A", "B", "C", "D", "E"]

Пример

Давайте используем метод each для работы с коллекцией моделей:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function index() { $articles = Article::where('status', 'published')->get(); $articles->each(function ($article) { echo $article->title; }); } } ?>

Результат выполнения кода:

"article 1article 2article 3"

Смотрите также

  • метод filter,
    который фильтрует коллекцию по заданному условию
  • метод map,
    который преобразует каждый элемент коллекции
  • метод reduce,
    который сводит коллекцию к одному значению
  • метод reject,
    который удаляет элементы, удовлетворяющие условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить