PHP数组排序异常

PHP数组排序异常,php,arrays,sorting,Php,Arrays,Sorting,我在PHP中对数组进行排序时遇到问题,在使用基本sort()例程时遇到问题 比如说, $arr = array("J1", "N1", "J10", "J2"); 使用排序例程时,我的输出为: J1、J10、J2、N1 我期望的输出是: J1,J2,J10,N1 有人知道更适合这种问题的排序算法吗? 谢谢。看看这个函数 $arr = array("J1", "N1", "J10", "J2"); natsort($arr); var_dump($arr); array(4) { [0]

我在PHP中对数组进行排序时遇到问题,在使用基本sort()例程时遇到问题

比如说,

$arr = array("J1", "N1", "J10", "J2");
使用排序例程时,我的输出为: J1、J10、J2、N1

我期望的输出是: J1,J2,J10,N1

有人知道更适合这种问题的排序算法吗? 谢谢。

看看这个函数

$arr = array("J1", "N1", "J10", "J2");
natsort($arr);

var_dump($arr);

array(4) {
  [0]=>
  string(2) "J1"
  [3]=>
  string(2) "J2"
  [2]=>
  string(3) "J10"
  [1]=>
  string(2) "N1"
}

因为
'J10'<'J2'
。字符表中的字符
1
位于
2
之前。我知道为什么它会这样排序,我只是好奇是否有办法从后面的第一个字符开始按字母顺序再按数字顺序排序。谢谢