3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ ['brand' => 'ABC', 'model' => 'xyz', 'size' => 13], ['brand' => 'QWE', 'model' => 'poi', 'size' => 23], ['brand' => 'ABC', 'model' => 'xyz', 'size' => 18] ]; $result = []; foreach ($array as $row) { $compositeKey = $row['brand'] . '_' . $row['model']; if (!isset($result[$compositeKey])) { $result[$compositeKey] = $row; } else { $result[$compositeKey]['size'] = array_merge((array)$result[$compositeKey]['size'], [$row['size']]); } } var_export(array_values($result));

preferences:
19.92 ms | 406 KiB | 5 Q