首页 > 解决方案 > 计数相同值 Laravel 集合

问题描述

我想在 laravel 集合中计算相同的值,这是我的数组:

[
 'January' => [
  [
   'status' => 'active',
  ], [
   'status' => 'active',
  ], [
   'status' => 'disable',
  ], [
   'status' => 'active',
  ], 

  'February' => [
   'status' => 'active',
  ], [
   'status' => 'active',
  ], [
   'status' => 'disable',
  ], [
   'status' => 'disable',
  ], 
 ]

我想计算相同的值是这样的:

[
 'January' => [
  'active' => 3
  'disable' => 1,
 ], 

 'February' => [
  'active' => 2,
  'disable' => 2,
 ]

如何做到这一点使用 laravel 集合?

标签: laravelcollectionsdistinct

解决方案


您可以使用 Collection'smapcountBy执行此操作:

collect($array)->map(fn ($i) => collect($i)->countBy('status'));

推荐阅读