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

Метод intersect

Метод intersect применяется к коллекции и возвращает новую коллекцию, содержащую только те элементы, которые присутствуют в переданной коллекции или массиве. Метод сравнивает значения элементов, а не ключи. Первым и единственным параметром передаётся коллекция или массив, с которыми нужно сравнить исходную коллекцию.

Синтаксис

<?php $collection->intersect($items); ?>

Пример

Давайте найдём пересечение двух коллекций:

<?php use Illuminate\Support\Collection; $collection = new Collection([1, 2, 3, 4, 5]); $items = new Collection([3, 4, 5, 6, 7]); $res = $collection->intersect($items); echo $res; ?>

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

[3, 4, 5]

Пример

Метод intersect также работает с ассоциативными массивами. В этом случае пересечение происходит по значениям:

<?php use Illuminate\Support\Collection; $collection = new Collection([ 'a' => 'article', 'b' => 'user', 'c' => 'category' ]); $items = new Collection([ 'x' => 'user', 'y' => 'category', 'z' => 'post' ]); $res = $collection->intersect($items); echo $res; ?>

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

{"b":"user","c":"category"}

Пример

Метод intersect может принимать массив в качестве аргумента:

<?php use Illuminate\Support\Collection; $collection = new Collection(['a', 'b', 'c', 'd', 'e']); $items = ['b', 'd', 'f']; $res = $collection->intersect($items); echo $res; ?>

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

["b","d"]

Пример

Важно отметить, что метод intersect сохраняет ключи из исходной коллекции:

<?php use Illuminate\Support\Collection; $collection = new Collection([ 'first' => 1, 'second' => 2, 'third' => 3, 'fourth' => 4, 'fifth' => 5 ]); $items = [2, 4, 6]; $res = $collection->intersect($items); echo $res; ?>

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

{"second":2,"fourth":4}

Пример

Метод intersect можно использовать для сравнения коллекций с объектами:

<?php use Illuminate\Support\Collection; class User { public $name; public function __construct($name) { $this->name = $name; } } $collection = new Collection([ new User('John'), new User('Jane'), new User('Bob') ]); $items = new Collection([ new User('Jane'), new User('Bob'), new User('Alice') ]); $res = $collection->intersect($items); echo json_encode($res); ?>

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

"[{"name":"Jane"},{"name":"Bob"}]"

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

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