В Laravel существует несколько методов объединения коллекций. Вот некоторые из наиболее часто используемых методов:
merge: этот метод объединяет данную коллекцию с текущей коллекцией, создавая новую коллекцию, содержащую все элементы из обеих коллекций.
$collection1 = collect([1, 2, 3]);
$collection2 = collect([4, 5, 6]);
$merged = $collection1->merge($collection2);
// Output: [1, 2, 3, 4, 5, 6]
concat: этот метод объединяет данную коллекцию с текущей коллекцией, создавая новую коллекцию со всеми элементами из обеих коллекций.
$collection1 = collect([1, 2, 3]);
$collection2 = collect([4, 5, 6]);
$concatenated = $collection1->concat($collection2);
// Output: [1, 2, 3, 4, 5, 6]
union: этот метод создает новую коллекцию, содержащую уникальные элементы как из текущей, так и из заданной коллекции.
$collection1 = collect([1, 2, 3]);
$collection2 = collect([3, 4, 5]);
$union = $collection1->union($collection2);
// Output: [1, 2, 3, 4, 5]
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']
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']