3v4l.org

run code in 300+ PHP versions simultaneously
<?php $topics_percentage = [ ['id' => 8989, 'cat' => 'Category 1', 'completed' => 0], ['id' => 8919, 'cat' => 'Category 2', 'completed' => 1], ['id' => 8913, 'cat' => 'Category 2', 'completed' => 1], ['id' => 8947, 'cat' => 'Category 1', 'completed' => 1], ['id' => 8949, 'cat' => 'Category 3', 'completed' => 1], ]; $result = []; $lookup = ['noncompleted', 'completed']; foreach ($topics_percentage as ['cat' => $cat, 'completed' => $comp]) { $result[$cat][$lookup[$comp]] = ($result[$cat][$lookup[$comp]] ?? 0) + 1; } var_export($result);
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
array ( 'Category 1' => array ( 'noncompleted' => 1, 'completed' => 1, ), 'Category 2' => array ( 'completed' => 2, ), 'Category 3' => array ( 'completed' => 1, ), )

preferences:
57.26 ms | 402 KiB | 62 Q