массив и счетчик php - PullRequest
       6

массив и счетчик php

0 голосов
/ 26 октября 2018

У меня есть массив, который содержит другие значения массива: Пример.

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 голосов
/ 26 октября 2018

Когда вы делаете $result[$log['level']] = $log;, вы заменяете значение в $result[$log['level']] на каждой итерации, поэтому вы получаете только последнюю запись для каждого уровня.Вместо этого вам нужно использовать

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

, чтобы добавить этот ключ вместо его замены.

После исправления этого у вас будет массив массивов массивов, а не просто массивмассивов, и вы можете получить счет с

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