【问题标题】:How to sort versioning info如何对版本信息进行排序
【发布时间】:2012-01-31 05:26:45
【问题描述】:

什么是正确的方法,处理诸如2.42.4.0.9等版本控制指标以获得对版本进行排序的能力。

PHP 说,1.3.4 不是一个有效的整数,也是一个无效的数字。

array('2.4','2.3.4','2.4.0.9')

【问题讨论】:

    标签: php version-control version


    【解决方案1】:

    PHP 有一个version_compare 函数。使用usort 对其进行排序。跟下面一样。 :)

    $a = array('2.4','2.3.4','2.4.0.9');
    usort($a, 'version_compare');
    

    【讨论】:

      【解决方案2】:

      或者,只需使用natsort

      $array = array('2.4','2.16.6','2.3.4','2.4.0.9');
      natsort($array);
      print_r($array);
      
      #Array ( [2] => 2.3.4 [0] => 2.4 [3] => 2.4.0.9 [1] => 2.16.6 )
      

      【讨论】:

      • 如果版本可能包含 -RC1 或其他非数字数据,natsort 是一个糟糕的选择:version_compare 会将 RC 版本放在稳定版本之前(例如:“Twig-1.0.0-RC1” , "Twig-1.0.0-RC2", "Twig-1.0.0") 其中netsort 将返回错误的 "Twig-1.0.0", "Twig-1.0.0-RC1", "Twig-1.0. 0-RC2"
      【解决方案3】:

      将其存储为字符串允许您使用version_compare() 函数:

      $versions = array('2.4','2.3.4','2.4.0.9');
      usort($versions, 'version_compare');
      

      【讨论】:

      • 我想我在你之前回答了usort 版本。您稍后编辑。 :P
      猜你喜欢
      • 2013-11-27
      • 1970-01-01
      • 2018-01-30
      • 2022-10-12
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 2013-09-14
      相关资源
      最近更新 更多