3v4l.org

run code in 300+ PHP versions simultaneously
<?php function sort_by_key($key) { return fn($a, $b) => strnatcmp($a[$key], $b[$key]); } $array = [ [ 'id' => 3, 'username' => 'TML', 'realname' => 'Joey' ], [ 'id' => 1, 'username' => '__adrian', 'realname' => 'Adrian, presumably?' ], [ 'id' => 2, 'username' => 'Blondie101010', 'realname' => 'No idea' ] ]; foreach(array_keys($array[0]) as $key) { echo "\n\nSorting array by key {$key}:\n"; usort($array, sort_by_key($key)); var_dump($array); }
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Sorting array by key id: array(3) { [0]=> array(3) { ["id"]=> int(1) ["username"]=> string(8) "__adrian" ["realname"]=> string(19) "Adrian, presumably?" } [1]=> array(3) { ["id"]=> int(2) ["username"]=> string(13) "Blondie101010" ["realname"]=> string(7) "No idea" } [2]=> array(3) { ["id"]=> int(3) ["username"]=> string(3) "TML" ["realname"]=> string(4) "Joey" } } Sorting array by key username: array(3) { [0]=> array(3) { ["id"]=> int(2) ["username"]=> string(13) "Blondie101010" ["realname"]=> string(7) "No idea" } [1]=> array(3) { ["id"]=> int(3) ["username"]=> string(3) "TML" ["realname"]=> string(4) "Joey" } [2]=> array(3) { ["id"]=> int(1) ["username"]=> string(8) "__adrian" ["realname"]=> string(19) "Adrian, presumably?" } } Sorting array by key realname: array(3) { [0]=> array(3) { ["id"]=> int(1) ["username"]=> string(8) "__adrian" ["realname"]=> string(19) "Adrian, presumably?" } [1]=> array(3) { ["id"]=> int(3) ["username"]=> string(3) "TML" ["realname"]=> string(4) "Joey" } [2]=> array(3) { ["id"]=> int(2) ["username"]=> string(13) "Blondie101010" ["realname"]=> string(7) "No idea" } }

preferences:
74.95 ms | 405 KiB | 60 Q