Laravel Collection - méthode chunk()

La méthode chunk() divise la collection en plusieurs collections plus petites d'une taille donnée.


$collection = collect([1, 2, 3, 4, 5, 6, 7]);

$chunks = $collection->chunk(4);


Résultat retourné :

Illuminate\Support\Collection {#1629 ▼
  #items: array:2 [▼
    0 => Illuminate\Support\Collection {#1597 ▼
      #items: array:4 [▼
        0 => 1
        1 => 2
        2 => 3
        3 => 4
      ]
    }
    1 => Illuminate\Support\Collection {#1599 ▼
      #items: array:3 [▼
        4 => 5
        5 => 6
        6 => 7
      ]
    }
  ]
}


Cette méthode est particulièrement utile dans les vues lorsque vous travaillez avec un système de grille tel que Bootstrap. Par exemple, imaginez que vous avez une collection de modèles Eloquent que vous voulez afficher dans une grille.


Exemple d'utilisation. Partons d'une liste de tutoriels :


$tutorials = Tutorial::get();


@foreach ($tutorials->chunk(3) as $chunk)
    <div class="row">
        @foreach ($chunk as $tutorial)
            <div class="col-xs-4">$tutorial->name</div>
        @endforeach
    </div>
@endforeach

Avec cette technique, nous aurons des lignes de 3 tutoriels.

Cours rédigé par Vincent, publié le 30/03/2021