分组和计数数组 php
group and count array 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);
我有一个包含另一个数组值的数组: 前任。
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);