Laravel Collections
Laravel Collections https://unsplash.com/photos/rgLl9qA6kUA?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink

Laravel Collections | Part 1

In Part 1, we'll delve into a variety of Collection methods, each accompanied by an example:

1. all()

The all method returns all the items from the collection as a plain array. It's a straightforward way to convert a collection into a standard PHP array.

$collection = collect([1, 2, 3]);
$array = $collection->all();
// Result: [1, 2, 3]

2. average()

The average method calculates the average of all numeric values in the collection. It's handy when you need to find the mean value of a set of numbers.

$collection = collect([1, 2, 3, 4, 5]);

$average = $collection->average();
// Result: 3.0

3. avg()

Similar to average(), the avg method calculates the average of all numeric values in the collection. It provides an alias for the same functionality.

$collection = collect([1, 2, 3, 4, 5]);

$average = $collection->avg();
// Result: 3.0

4. chunk()

The chunk is a very handy method, it breaks the collection into smaller chunks of a specified size. It's useful for paginating large datasets or processing data in batches.


$collection = collect([1, 2, 3, 4, 5, 6, 7, 8]);
$chunks = $collection->chunk(3);
// Result: [[1, 2, 3], [4, 5, 6], [7, 8]]

5. chunkWhile()

The chunkWhile method allows you to chunk a collection based on a callback function's logic. It chunks the data until the callback returns false.

$collection = collect([1, 2, 3, 4, 5, 6]);
			
$chunks = $collection->chunkWhile(fn($item) => $item % 2 === 0);
// Result: [[1], [2, 3], [4, 5], [6]]

6. collapse()

The collapse method flattens a multi-dimensional collection into a single-dimensional one. It's handy when you have nested arrays and want to simplify the structure.

$collection = collect([[1, 2], [3, 4], [5, 6]]);
			
$collapsed = $collection->collapse();
// Result: [1, 2, 3, 4, 5, 6]

7. collect()

The collect function is not a method but a global helper function that converts an array into a collection instance.

$array = [1, 2, 3];
			
$collection = collect($array);
// Now, $collection is an instance of Illuminate\Support\Collection

8. combine()

The combine method combines the values of one collection as keys with the values of another collection as values to create a new collection.

$keys = collect(['name', 'age']);
		
$values = collect(['John', 30]);
$combined = $keys->combine($values);
// Result: ['name' => 'John', 'age' => 30]

9. concat()

The concat method appends the items of another array or collection to the current collection, creating a new collection.

$collection = collect([1, 2]);

$concatenated
= $collection->concat([3, 4]);
// Result: [1, 2, 3, 4]

10. contains()

The contains method checks if the collection contains a specific value. It returns true if the value is found, otherwise false.

$collection = collect(['apple', 'banana', 'cherry']);

$containsBanana
= $collection->contains('banana');
// Result: true

11. containsOneItem()

The containsOneItem method checks if the collection contains only one item. It returns true if there's exactly one item in the collection.

$collection = collect(['apple']);

$containsOne
= $collection->containsOneItem();
// Result: true

12. containsStrict()

The containsStrict method checks if the collection contains a specific value using strict comparison (===). It returns true if the value is found strictly, otherwise false.

$collection = collect([1, '1']);

$containsStrict
= $collection->containsStrict(1);
// Result: true

13. count()

The count method returns the number of items in the collection.

$collection = collect([1, 2, 3, 4, 5]);

$count
= $collection->count();
// Result: 5

14. countBy()

The countBy method groups the collection's items by a key or callback function and returns the count of items in each group as a new collection.

$collection = collect(['apple', 'banana', 'cherry']);
			
$counted = $collection->countBy(fn($item) => strlen($item));
// Result: [5 => 2, 6 => 1]

15. crossJoin()

The crossJoin method returns all possible combinations of the items from multiple arrays or collections, creating a new collection of arrays.

$letters = collect(['A', 'B']);
			
$numbers = collect([1, 2]);
$combinations = $letters->crossJoin($numbers);
// Result: [['A', 1], ['A', 2], ['B', 1], ['B', 2]]

In Part 2, we'll explore more of what Laravel Collections has to offer, enabling you to become a true Collection master in your Laravel projects. Stay tuned and Happy Coding!