mmv*_*sbg 9 php arrays sorting usort
如果uasort在PHP中有一个相当基本的函数,如下所示:
uasort($arr, function($a, $b) {
if ($a > $b)
return -1;
if ($a < $b)
return 1;
...
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试排序的数组如下所示:
{[1642] => 1, [9314] => 4, [1634] => 3 ...}
Run Code Online (Sandbox Code Playgroud)
它包含整数,这是我的主要比较标准.但是,如果整数相等,那么我想在uasort函数内部访问它们的键值,并用它做一些魔术来从中找出排序.
我不知道该怎么做,因为它似乎$a和$b那得到传递给函数的变量仅仅是整数没有相应的密钥,但因为我用函数实际上应该有访问密钥以及方式保留钥匙.有任何想法吗?
dec*_*eze 12
uksort($arr, function ($a, $b) use ($arr) {
return $arr[$a] - $arr[$b] ?: $a - $b;
});
Run Code Online (Sandbox Code Playgroud)
您可以通过键获取值,因此使用uksort它可以为您提供键.用$a - $b适当的魔法替换,这里只是按键的值排序.