3v4l.org

run code in 300+ PHP versions simultaneously
<?php $users = [ ['first_name' => 'Bob', 'last_name' => 'Smith'], ['first_name' => 'Steve', 'last_name' => 'Little'], ['first_name' => 'Eric', 'last_name' => 'Fielder'], ['first_name' => 'Steve', 'last_name' => 'Richardson'], ['first_name' => 'Sue', 'last_name' => 'Boy'], ['first_name' => 'Bob', 'last_name' => 'Sanders'], ['first_name' => 'Bob', 'last_name' => 'Sanders'], ['first_name' => 'Bob', 'last_name' => 'Smith'], ]; foreach ($users as $row) { $grouped[$row['first_name']][$row['last_name'][0] ?? ''][$row['last_name']][] = $row; } var_export($grouped); /* foreach ($grouped as $firstName => $leadingLetterGroup) { if () */
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
array ( 'Bob' => array ( 'S' => array ( 'Smith' => array ( 0 => array ( 'first_name' => 'Bob', 'last_name' => 'Smith', ), 1 => array ( 'first_name' => 'Bob', 'last_name' => 'Smith', ), ), 'Sanders' => array ( 0 => array ( 'first_name' => 'Bob', 'last_name' => 'Sanders', ), 1 => array ( 'first_name' => 'Bob', 'last_name' => 'Sanders', ), ), ), ), 'Steve' => array ( 'L' => array ( 'Little' => array ( 0 => array ( 'first_name' => 'Steve', 'last_name' => 'Little', ), ), ), 'R' => array ( 'Richardson' => array ( 0 => array ( 'first_name' => 'Steve', 'last_name' => 'Richardson', ), ), ), ), 'Eric' => array ( 'F' => array ( 'Fielder' => array ( 0 => array ( 'first_name' => 'Eric', 'last_name' => 'Fielder', ), ), ), ), 'Sue' => array ( 'B' => array ( 'Boy' => array ( 0 => array ( 'first_name' => 'Sue', 'last_name' => 'Boy', ), ), ), ), )
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 array ( 'Bob' => array ( 'S' => array ( 'Smith' => array ( 0 => array ( 'first_name' => 'Bob', 'last_name' => 'Smith', ), 1 => array ( 'first_name' => 'Bob', 'last_name' => 'Smith', ), ), 'Sanders' => array ( 0 => array ( 'first_name' => 'Bob', 'last_name' => 'Sanders', ), 1 => array ( 'first_name' => 'Bob', 'last_name' => 'Sanders', ), ), ), ), 'Steve' => array ( 'L' => array ( 'Little' => array ( 0 => array ( 'first_name' => 'Steve', 'last_name' => 'Little', ), ), ), 'R' => array ( 'Richardson' => array ( 0 => array ( 'first_name' => 'Steve', 'last_name' => 'Richardson', ), ), ), ), 'Eric' => array ( 'F' => array ( 'Fielder' => array ( 0 => array ( 'first_name' => 'Eric', 'last_name' => 'Fielder', ), ), ), ), 'Sue' => array ( 'B' => array ( 'Boy' => array ( 0 => array ( 'first_name' => 'Sue', 'last_name' => 'Boy', ), ), ), ), )

preferences:
165.41 ms | 405 KiB | 153 Q