php - 分组和计数数组php
问题描述
我有一个包含另一个数组值的数组:例如。
array:69 [▼
0 => array:9 [▼
"app" => "a.log"
"context" => "local"
"level" => "error"
"level_class" => "danger"
我想根据它们的级别对所有错误进行分组例如:
array:
"error" => "count of Errors",
"debug" => "count of debug"
我试过这样做:
foreach($logs as $log){
$result[$log['level']] = $log;
}
我得到的结果是:
array:2 [▼
"error" => "Last error entry in array"
"failed" => "Last failed entry in array"
]
任何帮助表示赞赏。谢谢你。
解决方案
当您这样做时$result[$log['level']] = $log;
,您将$result[$log['level']]
在每次迭代中替换值,这就是为什么您最终只得到每个级别的最后一个条目的原因。相反,您需要使用
$result[$log['level']][] = $log;
附加到该键而不是替换它。
修复该问题后,您将拥有一个数组数组,而不仅仅是一个数组数组,您可以使用
$counts = array_map('count', $result);