kam*_*mal 3 php arrays sorting
我有一个像这样的数组:
$array = array(
[1]=>'something',
[0.2]=>'something',
[0.1]=>'something',
[0.3]=>'something',
[0.10]=>'something'
);
Run Code Online (Sandbox Code Playgroud)
现在我想按键排序这个数组,所以我使用这个代码:
uksort($array, 'strnatcasecmp');
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,但唯一的问题是我想要反转结果.为此,我用krsort,array_reverse,rsort之后uksort,但他们都改变uksort的结果.
那么我可以按自然顺序按键排序这个数组并反转结果吗?
我想要的应该是:
$array = array(
[1]=>'something',
[0.10]=>'something',
[0.3]=>'something',
[0.2]=>'something',
[0.1]=>'something'
);
Run Code Online (Sandbox Code Playgroud)
试试这个:
uksort($array, create_function('$a,$b', 'return -strnatcasecmp($a,$b);'));
Run Code Online (Sandbox Code Playgroud)
由于您已经使用了uksort的变体(用户函数定义的排序),因此该版本只是通过反转比较函数的结果来反转顺序.我认为它应该适合你.
或者试试这个:
uksort($array, 'strnatcasecmp');
$array = array_reverse($array, true);
Run Code Online (Sandbox Code Playgroud)
请注意true保留密钥的参数.