3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = [ [ "count_employee" => 2, "name" => "Harry" ], [ "count_employee" => 61, "name" => "Jack" ], [ "count_employee" => 11, "name" => "John" ], [ "count_warehouse" => 1, "name" => "Harry" ], [ "count_warehouse" => 77, "name" => "John" ], [ "count_warehouse" => 45, "name" => "Jack" ] ]; $result = []; foreach ($arr as $v) { // Initialize the person if (!isset($result[$v['name']])) { $result[$v['name']] = ["name" => $v['name'], "count_employee" => 0, "count_warehouse" => 0]; } // Add values if (isset($v['count_employee'])) $result[$v['name']]['count_employee'] += $v['count_employee']; if (isset($v['count_warehouse'])) $result[$v['name']]['count_warehouse'] += $v['count_warehouse']; } print_r($result);
Output for 5.4.45, 7.1.25 - 7.1.28, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
Array ( [Harry] => Array ( [name] => Harry [count_employee] => 2 [count_warehouse] => 1 ) [Jack] => Array ( [name] => Jack [count_employee] => 61 [count_warehouse] => 45 ) [John] => Array ( [name] => John [count_employee] => 11 [count_warehouse] => 77 ) )

preferences:
103.58 ms | 404 KiB | 167 Q