3v4l.org

run code in 300+ PHP versions simultaneously
<?php $newArr = array ( 100 => array ( 1 => array ( 'AVA_Date' => '2019-04-18', 'ROO_Id' => 100, 'RAT_Id' => 9 ), 2 => array ( 'AVA_Date' => '2019-04-20', 'ROO_Id' => 100, 'RAT_Id' => 10 ), 4 => array ( 'AVA_Date' => '2019-04-21', 'ROO_Id' => 100, 'RAT_Id' => 10 ), 7 => array ( 'AVA_Date' => '2019-04-22', 'ROO_Id' => 100, 'RAT_Id' => 9 ) ) ); $result = []; foreach ($newArr as $rooId => $rows) { $groups = []; foreach ($rows as $row) { if (!isset($groups[$row['RAT_Id']])) { $row['AVA_Date'] = (array) $row['AVA_Date']; $groups[$row['RAT_Id']] = $row; } else { $groups[$row['RAT_Id']]['AVA_Date'][] = $row['AVA_Date']; } } $result[$rooId] = array_values($groups); } var_export($result);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
array ( 100 => array ( 0 => array ( 'AVA_Date' => array ( 0 => '2019-04-18', 1 => '2019-04-22', ), 'ROO_Id' => 100, 'RAT_Id' => 9, ), 1 => array ( 'AVA_Date' => array ( 0 => '2019-04-20', 1 => '2019-04-21', ), 'ROO_Id' => 100, 'RAT_Id' => 10, ), ), )

preferences:
138.7 ms | 407 KiB | 127 Q