3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr1 = array( array( 'Class' => 'Class 1', 'Student' => array('Name one') ), array( 'Class' => 'Class 2', 'Student' => array('Name one') ), ); $arr2 = array( array( 'Class' => 'Class 1', 'Student' => array('Name two, Name three') ), array( 'Class' => 'Class 2', 'Student' => array('Name Two, Name Three, Name Four') ), ); foreach ($arr1 as $row) { $ref[$row['Class']] = $row; $result[] =& $ref[$row['Class']]; } foreach ($arr2 as $row) { if (!isset($ref[$row['Class']])) { $result[] = $row; } else { $ref[$row['Class']]['Student'][0] .= ", {$row['Student'][0]}"; } } var_export($result);
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
array ( 0 => array ( 'Class' => 'Class 1', 'Student' => array ( 0 => 'Name one, Name two, Name three', ), ), 1 => array ( 'Class' => 'Class 2', 'Student' => array ( 0 => 'Name one, Name Two, Name Three, Name Four', ), ), )

preferences:
84.88 ms | 402 KiB | 62 Q