<?php
function uasort_key(&$arr, $func) {
return uksort($arr, function($a,$b) use($arr,$func) {
return $func($arr[$a], $arr[$b], $a, $b);
});
}
function sort_me($a, $b, $ka = 0, $kb = 0) {
return ($a < $b ? -1 : ($a > $b ? 1 :
($ka < $kb ? -1 : ($ka > $kb ? 1 : 0))
));
}
$test_array = array(4,6,2,1,7,5,1,34,1,0,4);
$test_array_uasort_key = $test_array;
uasort_key($test_array_uasort_key, 'sort_me');
print_r($test_array_uasort_key);
- Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 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
(
[9] => 0
[3] => 1
[6] => 1
[8] => 1
[2] => 2
[0] => 4
[10] => 4
[5] => 5
[1] => 6
[4] => 7
[7] => 34
)
- 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
(
[9] => 0
[3] => 1
[6] => 1
[8] => 1
[2] => 2
[0] => 4
[10] => 4
[5] => 5
[1] => 6
[4] => 7
[7] => 34
)
preferences:
154.61 ms | 402 KiB | 182 Q