Laravel - Collections - Method CountBy

The countBy method counts the occurrences of values in the collection. By default, the method counts the occurrences of every element, allowing you to count certain "types" of elements in the collection:

    
    $collection = collect([1, 2, 2, 2, 3]);
    
    $counted = $collection->countBy();
    
    $counted->all();
    
    // [1 => 1, 2 => 3, 3 => 1]
	

You pass a closure to the countBy method to count all items by a custom value:

    
    $collection = collect(['[email protected]', '[email protected]', '[email protected]']);
    
    $counted = $collection->countBy(function ($email) {
        return substr(strrchr($email, "@"), 1);
    });
    
    $counted->all();
    
    // ['gmail.com' => 2, 'yahoo.com' => 1]