Particionar datos con colecciones en Laravel

Este método nos permite separar una colección en 2 colecciones según un criterio definido por una función.

Particionar datos con colecciones en Laravel
Photo by Bannon Morrissy / Unsplash

Siguiendo la serie de métodos útiles de las colecciones de Laravel, hoy me encontré con el método partition(). Este método nos permite separar una colección en 2 colecciones según un criterio definido por una función. Pongo un ejemplo: Tenemos una colección de productos y queremos separarla en dos colecciones: los productos caros (>= 10€) y los baratos (< 10€).

$products = Product::all();

[$cheapProducts, $expensiveProducts] = $products->partition(fn ($product) => $product->price < 10);

Ahora, $cheapProducts y $expensiveProducts son dos colecciones que tienen, respectivamente, los productos cuyo precio es menor a 10€ y los productos cuyo precio es >= 10€.