Dans cette 3e partie de notre série sur les collections nous allons voir la fonction chunk()
#Description
Chunk en français se traduit par morceau. Cette méthode va donc te permettre de découper ta collection en morceaux, tout simplement !
chunk() va te retourner d'autres collections plus petites.
Et c'est toi qui déterminera la taille des morceaux 👌🏽
#Exemples d'utilisation
Code source #1
1$languages = collect([2 "php",3 "python",4 "javascript",5 "go",6 "c#",7 "java",8 "cobol",9 "basic"10]);1112$chunked_languages = $languages->chunk(3);13print_r($chunked_languages);1$languages = collect([2 "php",3 "python",4 "javascript",5 "go",6 "c#",7 "java",8 "cobol",9 "basic"10]);1112$chunked_languages = $languages->chunk(3);13print_r($chunked_languages);
Résultat
1Illuminate\Support\Collection Object2(3 [items:protected] => Array4 (5 [0] => Illuminate\Support\Collection Object6 (7 [items:protected] => Array8 (9 [0] => php10 [1] => python11 [2] => javascript12 )13 )14 [1] => Illuminate\Support\Collection Object15 (16 [items:protected] => Array17 (18 [3] => go19 [4] => c#20 [5] => java21 )22 )23 [2] => Illuminate\Support\Collection Object24 (25 [items:protected] => Array26 (27 [6] => cobol28 [7] => basic29 )30 )31 )32)1Illuminate\Support\Collection Object2(3 [items:protected] => Array4 (5 [0] => Illuminate\Support\Collection Object6 (7 [items:protected] => Array8 (9 [0] => php10 [1] => python11 [2] => javascript12 )13 )14 [1] => Illuminate\Support\Collection Object15 (16 [items:protected] => Array17 (18 [3] => go19 [4] => c#20 [5] => java21 )22 )23 [2] => Illuminate\Support\Collection Object24 (25 [items:protected] => Array26 (27 [6] => cobol28 [7] => basic29 )30 )31 )32)
Et ceci est assez pratique surtout si vous voulez afficher par exemple des données via un nombre préci.
Si par exemple on prend les col-*-* de bootstrap et qu'on veut afficher par colonne 3 données alors cette fonction peut parfaitement faire l'affaire.
Un exemple même pris dans la documentation de Laravel l'explique
1@foreach ($products->chunk(3) as $chunk)2 <div class="row">3 @foreach ($chunk as $product)4 <div class="col-xs-4">{{ $product->name }}</div>5 @endforeach6 </div>7@endforeach1@foreach ($products->chunk(3) as $chunk)2 <div class="row">3 @foreach ($chunk as $product)4 <div class="col-xs-4">{{ $product->name }}</div>5 @endforeach6 </div>7@endforeach
#Référence
Vous pouvez avoir tous les détails de cette fonction dans la documentation de Laravel