首页 > 解决方案 > 获取数组的最高值

问题描述

上下文:为了提供上下文,我正在尝试创建一个图表,其中月份作为标签,应用程序数量作为数据集。

我的代码:

$apps = Application::whereBetween('created_at', [
        Carbon::now()->startOfYear(),
        Carbon::now()->endOfYear(),
    ])
    ->get()
    ->groupBy(function ($val) {
        return Carbon::parse($val->created_at)->format('M');
    })
    ->toArray();

返回

array:3 [▼
 "Jan" => array:2 [▶]
 "Feb" => array:1 [▶]
 "May" => array:1 [▶]
]

我想创建一个产生这个结果的数组:

['Jan', 'Feb', 'May']

我尝试过使用数组键、值等,但没有任何乐趣。

标签: phparrayslaravel

解决方案


如果您只寻找月份列表,那么您可以在查询中使用selectRawgroupBy

  $apps = Application::whereBetween('created_at', [
                Carbon::now()->startOfYear(),
                Carbon::now()->endOfYear(),
            ])->selectRaw('MONTHNAME(created_at) as month,count(*) as total')
           ->groupBy('month')
           ->pluck('total','month')->toArray();

分别获取月份和计数列表

array_keys($apps)array_values($apps)


推荐阅读