laravel 数组的结果数组

laravel result array of array

我有这个 eloquent 查询

$data= \App\Logs::select('id', 'created_at') 
    ->get()         
    ->groupBy(function($val) {
        return Carbon::parse($val->created_at)->format('d-M-');
    })->toArray();

并且这个返回类似的东西

array:2 [▼
  "06-Jul-" => array:1 [▼
    0 => array:2 [▼
      "id" => 1
      "created_at" => "2017-07-06 13:21:15"
    ]
  ]
  "07-Jul-" => array:3 [▼
    0 => array:2 [▼
      "id" => 2
      "created_at" => "2017-07-07 13:43:23"
    ]
    1 => array:2 [▼
      "id" => 3
      "created_at" => "2017-07-07 14:18:36"
    ]
    2 => array:2 [▼
      "id" => 4
      "created_at" => "2017-07-07 14:18:41"
    ]
  ]
]

我只想要 return 计数
"06-Jul-" => "1"
"7 月 7 日-" => "3"

我该怎么做?

您可以在 groupBy 之后 use/chain map/transform 例如:

$data = \App\Logs::select('id', 'created_at') 
->get()         
->groupBy(function($val) {
    return Carbon::parse($val->created_at)->format('d-M-');
})
->transform(function ($collection, $key) {
    return $collection->count();
});