Laravel Collection - méthode countBy()

La méthode countBy() compte les occurrences des valeurs dans la collection. Par défaut, la méthode compte les occurrences de chaque élément, ce qui vous permet de compter certains "types" d'éléments dans la collection.


$collection = collect([1, 2, 2, 2, 3]);

$counted = $collection->countBy();

$counted->all();

// [1 => 1, 2 => 3, 3 => 1]


Vous pouvez passer une closure à la méthode countBy() pour compter tous les éléments par une valeur personnalisée

$collection = collect(['alice@gmail.com', 'bob@yahoo.com', 'carlos@gmail.com']);

$counted = $collection->countBy(function ($email) {
    return substr(strrchr($email, "@"), 1);
});

$counted->all();

// ['gmail.com' => 2, 'yahoo.com' => 1]


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