3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 'a' => ['id' => 20, 'name' => 'chimpanzee'], 'b' => ['id' => 40, 'name' => 'meeting'], 'c' => ['id' => 20, 'name' => 'dynasty'], 'd' => ['id' => 50, 'name' => 'chocolate'], 'e' => ['id' => 10, 'name' => 'bananas'], 'f' => ['id' => 50, 'name' => 'fantasy'], 'g' => ['id' => 50, 'name' => 'football'] ]; asort($array); $result = []; array_walk( $array, function($row, $k) use (&$result) { $result[$row['id']][$k] = $row; } ); var_export($result);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
array ( 10 => array ( 'e' => array ( 'id' => 10, 'name' => 'bananas', ), ), 20 => array ( 'a' => array ( 'id' => 20, 'name' => 'chimpanzee', ), 'c' => array ( 'id' => 20, 'name' => 'dynasty', ), ), 40 => array ( 'b' => array ( 'id' => 40, 'name' => 'meeting', ), ), 50 => array ( 'd' => array ( 'id' => 50, 'name' => 'chocolate', ), 'f' => array ( 'id' => 50, 'name' => 'fantasy', ), 'g' => array ( 'id' => 50, 'name' => 'football', ), ), )

preferences:
86.49 ms | 403 KiB | 88 Q