Particionar datos con colecciones en Laravel
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€.