<?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