3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr1 = [ ['part' => '1', 'address' => 'aaa', 'type' => '1', 'count' => 5], ['part' => '1', 'address' => 'bbb', 'type' => '1', 'count' => 5], ['part' => '1', 'address' => 'ccc', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'aaa', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'bbb', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'ccc', 'type' => '2', 'count' => 5] ]; $result = []; foreach ($arr1 as $row) { $compositeKey = $row['part'] . '-' . $row['type']; $result[$compositeKey] = [ 'part' => $row['part'], 'type' => $row['type'], 'count' => ($result[$compositeKey]['count'] ?? 0) + $row['count'] ]; } var_export(array_values($result));

preferences:
155.89 ms | 405 KiB | 5 Q