1. Accueil
  2. Articles
1 min de lecture
232 vues

Laravel Collections - la function chunk()

Image d'illustration pour Laravel Collections - la function chunk()

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]);
11 
12$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]);
11 
12$chunked_languages = $languages->chunk(3);
13print_r($chunked_languages);

Résultat

1Illuminate\Support\Collection Object
2(
3 [items:protected] => Array
4 (
5 [0] => Illuminate\Support\Collection Object
6 (
7 [items:protected] => Array
8 (
9 [0] => php
10 [1] => python
11 [2] => javascript
12 )
13 )
14 [1] => Illuminate\Support\Collection Object
15 (
16 [items:protected] => Array
17 (
18 [3] => go
19 [4] => c#
20 [5] => java
21 )
22 )
23 [2] => Illuminate\Support\Collection Object
24 (
25 [items:protected] => Array
26 (
27 [6] => cobol
28 [7] => basic
29 )
30 )
31 )
32)
1Illuminate\Support\Collection Object
2(
3 [items:protected] => Array
4 (
5 [0] => Illuminate\Support\Collection Object
6 (
7 [items:protected] => Array
8 (
9 [0] => php
10 [1] => python
11 [2] => javascript
12 )
13 )
14 [1] => Illuminate\Support\Collection Object
15 (
16 [items:protected] => Array
17 (
18 [3] => go
19 [4] => c#
20 [5] => java
21 )
22 )
23 [2] => Illuminate\Support\Collection Object
24 (
25 [items:protected] => Array
26 (
27 [6] => cobol
28 [7] => basic
29 )
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 @endforeach
6 </div>
7@endforeach
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 @endforeach
6 </div>
7@endforeach

#Référence

Vous pouvez avoir tous les détails de cette fonction dans la documentation de Laravel