PHP数组的反向自然排序,不保留键
我希望以相反的顺序自然地对数组排序,而不是保留键。例如,我想要这个数组:PHP数组的反向自然排序,不保留键,php,arrays,sorting,Php,Arrays,Sorting,我希望以相反的顺序自然地对数组排序,而不是保留键。例如,我想要这个数组: [0] => 1-string [1] => 2-string [2] => 10-string [3] => 4-srting [4] => 3-srting 结果是这样的: [0] => 10-srting [1] => 4-string [2] => 3-string [3] => 2-string [4] => 1-string 我与usort($ar
[0] => 1-string
[1] => 2-string
[2] => 10-string
[3] => 4-srting
[4] => 3-srting
结果是这样的:
[0] => 10-srting
[1] => 4-string
[2] => 3-string
[3] => 2-string
[4] => 1-string
我与usort($array,'strnatcmp')关系密切;但它的顺序不是相反的。之后的数组_reverse()不起作用
有什么想法吗?排序($array)不符合您的需要吗?使用的
$preserveKeys
属性重置键,并在一次排序后反转数组
你可以
<?php
$arr = array("1-string", "2-string", "10-string","4-srting", "3-srting");
function sort_reverse($a, $b){
$a = (int)$a;
$b = (int)$b;
if ($a > $b){
return -1;
}
if ($a < $b){
return 1;
}
return 0;
}
usort($arr, "sort_reverse");
var_dump($arr);
我对“array\u reverse()after没有帮助”有点困惑。因为
在我的机器上这可以工作:
$array = array('1-string', '2-string', '10-string', '4-string', '3-string');
natsort($array);
$array = array_reverse($array);
print_r($array);
与SORT_NATURAL
标志一起使用
rsort($array, SORT_NATURAL);
PHP5.4中引入了SORT_NATURAL
。如果您使用的是较低版本,请使用array\u reverse(natsort())版本。使用此函数首先进行自然排序,然后使用array\u reverse按降序进行排序
function natrsort($array)
{
natsort($array);
return array_reverse($array);
}
natrsort($array);
这是自然的还是非自然的秩序?我认为自然是“计数”,所以它是1-string,10-string,2-string,3-string,4-string
,而非自然是4-string,3-string,2-string,10-string,1-string
。大家都知道我对事情有误解(因为我结婚了,每周7天24小时都会发生沟通错误),所以你能给我一个更深入的解释吗,因为我不了解你的订购系统。自然是1,2,3,4,10,我能做到。我现在需要得到相反的顺序,所以:10,4,3,2,1。不。这让我得到4,3,2,10,1。
$array = array('1-string', '2-string', '10-string', '4-string', '3-string');
natsort($array);
$array = array_reverse($array);
print_r($array);
rsort($array, SORT_NATURAL);
function natrsort($array)
{
natsort($array);
return array_reverse($array);
}
natrsort($array);