【问题标题】:group and count array php分组和计数数组php
【发布时间】:2018-10-26 20:04:27
【问题描述】:

我有一个包含另一个数组值的数组: 前任。

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

感谢任何帮助。 谢谢。

【问题讨论】:

    标签: php arrays laravel-5 php-7


    【解决方案1】:

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

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

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

    修复该问题后,您将拥有一个由数组组成的数组,而不仅仅是一个数组数组,并且您可以使用

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

    【讨论】:

    • 像魅力一样工作!非常感谢@Don't Panic。
    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多