繁体   English   中英

PHP按升序对Varchar数据数组进行排序

[英]PHP Sort Varchar Data Array In Ascending Order

我想通过PHP代码按升序对varchar数据数组进行排序。
我尝试这样做,得到的结果是:

ABC1
ABC10
ABC11
ABC11A
ABC11B
ABC2
ABC2A
ABC20
ABC3

但我想要 :

ABC1
ABC2
ABC2A
ABC3
ABC10
ABC11
ABC11A
ABC11B
ABC20

有什么办法可以做到这一点?

$myarray= array("ABC1","ABC10","ABC11","ABC11A","ABC11B","ABC2","ABC2A","ABC20","ABC3");

 natsort($myarray);
 var_dump($myarray);

结果

array(9) {
  [0]=>
  string(4) "ABC1"
  [5]=>
  string(4) "ABC2"
  [6]=>
  string(5) "ABC2A"
  [8]=>
  string(4) "ABC3"
  [1]=>
  string(5) "ABC10"
  [2]=>
  string(5) "ABC11"
  [3]=>
  string(6) "ABC11A"
  [4]=>
  string(6) "ABC11B"
  [7]=>
  string(5) "ABC20"
}

由于评论中的讨论而更新

$keys = array_keys($myarray);
natsort($keys);
$newarray = array();
foreach ($keys as $k) $newarray[] = $myarray[$k];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM