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);