为了账号安全,请及时绑定邮箱和手机立即绑定

php排序版本字符串数组

php排序版本字符串数组

PHP
慕容3067478 2022-07-22 16:42:22
我想在 php.ini 中对一组版本字符串进行排序。输入将是这样的:["2019.1.1.0", "2019.2.3.0", "2019.2.11.0", "2020.1.0.0", "2019.1.3.0", "2019.3.0.0"]对此进行排序的最简单方法是什么?按原样对字符串进行排序不起作用,因为这会将“2019.2.11.0”放在“2019.2.3.0”之前,这当然不是我想要的。结果应该是["2019.1.1.0", "2019.1.3.0", "2019.2.3.0", "2019.2.11.0", "2019.3.0.0", "2020.1.0.0"]
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

您正在寻找自然排序。


$versions = ["2019.1.1.0", "2019.2.3.0", "2019.2.11.0", "2020.1.0.0", "2019.1.3.0", "2019.3.0.0"];

$sorted = $versions;

natsort($sorted);

Array

(

    [0] => 2019.1.1.0

    [4] => 2019.1.3.0

    [1] => 2019.2.3.0

    [2] => 2019.2.11.0

    [5] => 2019.3.0.0

    [3] => 2020.1.0.0

)


查看完整回答
反对 回复 2022-07-22
?
撒科打诨

TA贡献1934条经验 获得超2个赞

你应该使用version_compare函数。


这是usort与 version_compare 一起使用的方法。


$a = ["2019.1.1.0", "2019.2.3.0", "2019.2.11.0", "2020.1.0.0", "2019.1.3.0", "2019.3.0.0"];


usort($a, 'version_compare');


var_dump($a);

结果


array(6) {

  [0]=>

  string(10) "2019.1.1.0"

  [1]=>

  string(10) "2019.1.3.0"

  [2]=>

  string(10) "2019.2.3.0"

  [3]=>

  string(11) "2019.2.11.0"

  [4]=>

  string(10) "2019.3.0.0"

  [5]=>

  string(10) "2020.1.0.0"

}


查看完整回答
反对 回复 2022-07-22
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信