我有一个包含另一个数组值的数组: 例如
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"
]
感谢您的帮助。 谢谢。
答案 0 :(得分:2)
当您执行$result[$log['level']] = $log;
时,您将在每次迭代中替换$result[$log['level']]
中的值,这就是为什么最终仅获得每个级别的最后一个条目的原因。相反,您需要使用
$result[$log['level']][] = $log;
要附加到该键上而不是替换它。
解决此问题后,您将拥有一个由数组组成的数组,而不仅仅是数组,您可以通过以下方式获得计数
$counts = array_map('count', $result);