<?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 = $test_array;
$test_array_uasort_key = $test_array;
uasort($test_array_uasort, 'sort_me');
uasort_key($test_array_uasort_key, 'sort_me');
echo 'Unsorted: ';
print_r($test_array);
echo 'uasort: ';
print_r($test_array_uasort);
echo 'uasort_key: ';
print_r($test_array_uasort_key);
- Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- Unsorted: Array
(
[0] => 4
[1] => 6
[2] => 2
[3] => 1
[4] => 7
[5] => 5
[6] => 1
[7] => 34
[8] => 1
[9] => 0
[10] => 4
)
uasort: Array
(
[9] => 0
[3] => 1
[6] => 1
[8] => 1
[2] => 2
[0] => 4
[10] => 4
[5] => 5
[1] => 6
[4] => 7
[7] => 34
)
uasort_key: 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 7.0.6 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33
- Unsorted: Array
(
[0] => 4
[1] => 6
[2] => 2
[3] => 1
[4] => 7
[5] => 5
[6] => 1
[7] => 34
[8] => 1
[9] => 0
[10] => 4
)
uasort: Array
(
[9] => 0
[6] => 1
[3] => 1
[8] => 1
[2] => 2
[0] => 4
[10] => 4
[5] => 5
[1] => 6
[4] => 7
[7] => 34
)
uasort_key: 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 7.0.0 - 7.0.5
- Unsorted: Array
(
[0] => 4
[1] => 6
[2] => 2
[3] => 1
[4] => 7
[5] => 5
[6] => 1
[7] => 34
[8] => 1
[9] => 0
[10] => 4
)
uasort: Array
(
[9] => 0
[6] => 1
[3] => 1
[8] => 1
[2] => 2
[0] => 4
[10] => 4
[5] => 5
[1] => 6
[4] => 7
[7] => 34
)
uasort_key: Array
(
[9] => 0
[6] => 1
[3] => 1
[2] => 2
[0] => 4
[1] => 6
[10] => 4
[8] => 1
[5] => 5
[4] => 7
[7] => 34
)
- Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
- Warning: uksort(): Array was modified by the user comparison function in /in/3VLZ4 on line 6
Unsorted: Array
(
[0] => 4
[1] => 6
[2] => 2
[3] => 1
[4] => 7
[5] => 5
[6] => 1
[7] => 34
[8] => 1
[9] => 0
[10] => 4
)
uasort: Array
(
[9] => 0
[6] => 1
[8] => 1
[3] => 1
[2] => 2
[10] => 4
[0] => 4
[5] => 5
[1] => 6
[4] => 7
[7] => 34
)
uasort_key: Array
(
[9] => 0
[3] => 1
[6] => 1
[8] => 1
[2] => 2
[0] => 4
[10] => 4
[5] => 5
[1] => 6
[4] => 7
[7] => 34
)
preferences:
134.97 ms | 403 KiB | 182 Q