A new feature that just arrived in Laravel 5.3 is a new Collection Partition method that allows you to separate results into two elements.
$collection = collect([1, 2, 3, 4, 5, 6, 7]); $items = $collection->partition(function ($i) { return $i < 4;});
Now $items will be a collection containing two items. The first is a collection of items that passed the callback, and the second for the ones that did not.
Here is a look at the results from the code above called through print_r
:
Illuminate\Support\Collection Object( [items:protected] => Array ( [0] => Illuminate\Support\Collection Object ( [items:protected] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ) [1] => Illuminate\Support\Collection Object ( [items:protected] => Array ( [3] => 4 [4] => 5 [5] => 6 [6] => 7 ) ) ) )
This method is available starting at v5.3.27 and you can run composer update
to get the latest.
Filed in: