3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ ['model' => 'iPhone 12', 'grade' => 'A', 'price' => '100'], ['model' => 'iPhone 12', 'grade' => 'A', 'price' => '95'], ['model' => 'iPhone 12', 'grade' => 'B', 'price' => '85'], ['model' => 'iPhone 12', 'grade' => 'C', 'price' => '75'], ]; $result = []; foreach ($array as $row) { $compositeKey = $row['model'] . '_' . $row['grade']; if (!isset($result[$compositeKey]) || $result[$compositeKey][$row['grade']] > $row['price']) { $result[$compositeKey] = [ 'model' => $row['model'], $row['grade'] => $row['price'] ]; } } var_export(array_values($result));
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
array ( 0 => array ( 'model' => 'iPhone 12', 'A' => '95', ), 1 => array ( 'model' => 'iPhone 12', 'B' => '85', ), 2 => array ( 'model' => 'iPhone 12', 'C' => '75', ), )

preferences:
99.52 ms | 407 KiB | 5 Q