php - 获取数组的最高值
问题描述
上下文:为了提供上下文,我正在尝试创建一个图表,其中月份作为标签,应用程序数量作为数据集。
我的代码:
$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']
我尝试过使用数组键、值等,但没有任何乐趣。
解决方案
如果您只寻找月份列表,那么您可以在查询中使用selectRaw
和groupBy
$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)
推荐阅读
- flutter - 管理 Flutter 网络 cookie
- encryption - ASPNET_RegIIS 无法加密 applicationSettings(以及 web.config 中的其他部分?
- sql - SQL中的格式 - 十进制到整数
- ios - 带有图像附件的 IOS 本地富通知:避免扩展
- ios - VPN连接错误每次都显示错误:NEVPNStatusDidChange正在连接,正在断开连接
- kotlin - 更改列表中元素的纯函数
- python - 如何对齐绘图和颜色条的 xlabels
- doctrine-orm - 在同一事务中的 API 平台 POST 操作期间进行多次更新
- python - Python TypeError:无法将系列转换为
计算标准差时 - sql - SQL - Selecting countries with highest count