РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1054 of 1392 menu

Метод countBy

Метод countBy применяется к коллекции и возвращает новую коллекцию, где ключами являются значения из указанного поля или результаты работы callback-функции, а значениями - количество элементов, соответствующих каждому ключу. Первым параметром передаётся callback-функция или имя ключа, по которому производится группировка и подсчёт.

Синтаксис

<?php $collection->countBy($callback); ?>

Пример

Подсчитаем количество элементов в коллекции по их значениям:

<?php $collection = collect(['a', 'b', 'a', 'c', 'b', 'b']); $res = $collection->countBy(); print_r($res->toArray()); ?>

Результат выполнения кода:

["a" => 2, "b" => 3, "c" => 1]

Пример

Подсчитаем количество элементов, используя callback-функцию для определения ключа:

<?php $collection = collect([1, 2, 3, 4, 5, 6]); $res = $collection->countBy(function ($item) { return $item % 2 == 0 ? 'even' : 'odd'; }); print_r($res->toArray()); ?>

Результат выполнения кода:

["odd" => 3, "even" => 3]

Пример

Подсчитаем количество элементов по определённому ключу в коллекции объектов:

<?php $collection = collect([ ['type' => 'article', 'status' => 'published'], ['type' => 'user', 'status' => 'active'], ['type' => 'article', 'status' => 'draft'], ['type' => 'user', 'status' => 'active'], ['type' => 'category', 'status' => 'active'], ]); $res = $collection->countBy('status'); print_r($res->toArray()); ?>

Результат выполнения кода:

["published" => 1, "active" => 3, "draft" => 1]

Пример

Подсчитаем количество элементов по длине строки с помощью callback-функции:

<?php $collection = collect(['abc', 'de', 'fgh', 'ij', 'klmn', 'op']); $res = $collection->countBy(function ($item) { return strlen($item); }); print_r($res->toArray()); ?>

Результат выполнения кода:

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

Смотрите также

  • метод groupBy,
    который группирует элементы коллекции по ключу
  • метод filter,
    который фильтрует элементы коллекции по заданному условию
  • метод count,
    который возвращает общее количество элементов в коллекции
  • метод collect,
    который создаёт новую коллекцию из массива или объекта
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить