组和计数数组php

时间:2018-10-26 20:04:27

标签: php arrays laravel-5 php-7

我有一个包含另一个数组值的数组: 例如

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"
]

感谢您的帮助。 谢谢。

1 个答案:

答案 0 :(得分:2)

当您执行$result[$log['level']] = $log;时,您将在每次迭代中替换$result[$log['level']]中的值,这就是为什么最终仅获得每个级别的最后一个条目的原因。相反,您需要使用

$result[$log['level']][] = $log;

要附加到该键上而不是替换它。

解决此问题后,您将拥有一个由数组组成的数组,而不仅仅是数组,您可以通过以下方式获得计数

$counts = array_map('count', $result);