3v4l.org

run code in 300+ PHP versions simultaneously
<?php $officialGrid = [ ['grid' => TRUE, 'time' => '08:00', 'content' => NULL], ['grid' => TRUE, 'time' => '09:00', 'content' => NULL] ]; $bookings = [ ['grid' => NULL, 'time' => '08:00', 'content' => 'Paul Simon'], ['grid' => NULL, 'time' => '08:00', 'content' => 'Art Garfunkel'], ['grid' => NULL, 'time' => '08:39', 'content' => 'Homer J. Simpson'] ]; $result = array_column($officialGrid, null, 'time'); foreach ($bookings as $row) { if (!isset($result[$row['time']])) { $result[$row['time']] = $row; } else { $result[$row['time']]['content'] = sprintf( '%s%s', (isset($result[$row['time']]['content']) ? "{$result[$row['time']]['content']}, " : ''), $row['content'] ); } } ksort($result); var_export(array_values($result));
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
array ( 0 => array ( 'grid' => true, 'time' => '08:00', 'content' => 'Paul Simon, Art Garfunkel', ), 1 => array ( 'grid' => NULL, 'time' => '08:39', 'content' => 'Homer J. Simpson', ), 2 => array ( 'grid' => true, 'time' => '09:00', 'content' => NULL, ), )

preferences:
61.55 ms | 1027 KiB | 4 Q