Laravel Merge Collections: методы объединения коллекций в Laravel

В Laravel существует несколько методов объединения коллекций. Вот некоторые из наиболее часто используемых методов:

  1. merge: этот метод объединяет данную коллекцию с текущей коллекцией, создавая новую коллекцию, содержащую все элементы из обеих коллекций.
$collection1 = collect([1, 2, 3]);
$collection2 = collect([4, 5, 6]);
$merged = $collection1->merge($collection2);
// Output: [1, 2, 3, 4, 5, 6]
  1. concat: этот метод объединяет данную коллекцию с текущей коллекцией, создавая новую коллекцию со всеми элементами из обеих коллекций.
$collection1 = collect([1, 2, 3]);
$collection2 = collect([4, 5, 6]);
$concatenated = $collection1->concat($collection2);
// Output: [1, 2, 3, 4, 5, 6]
  1. union: этот метод создает новую коллекцию, содержащую уникальные элементы как из текущей, так и из заданной коллекции.
$collection1 = collect([1, 2, 3]);
$collection2 = collect([3, 4, 5]);
$union = $collection1->union($collection2);
// Output: [1, 2, 3, 4, 5]
  1. mergeRecursive: этот метод рекурсивно объединяет заданную коллекцию с текущей коллекцией. Если есть повторяющиеся строковые ключи, значения из данной коллекции перезапишут значения в текущей коллекции.
$collection1 = collect(['name' => 'John', 'age' => 30]);
$collection2 = collect(['name' => 'Jane', 'email' => 'jane@example.com']);
$merged = $collection1->mergeRecursive($collection2);
// Output: ['name' => 'Jane', 'age' => 30, 'email' => 'jane@example.com']
  1. mergeRecursiveDistinct: этот метод ведет себя так же, как mergeRecursive, но удаляет повторяющиеся значения из результирующей коллекции.
$collection1 = collect(['name' => 'John', 'age' => 30]);
$collection2 = collect(['name' => 'Jane', 'email' => 'jane@example.com']);
$merged = $collection1->mergeRecursiveDistinct($collection2);
// Output: ['name' => 'Jane', 'age' => 30, 'email' => 'jane@example.com']