比较PHP中不同长度的版本

时间:2013-12-23 22:26:20

标签: php string compare version

我错了或者version_compare不支持比较具有不同“点”长度的字符串/数字?

有没有快速的方法来比较以下内容而不重新发明轮子?

version_compare(1.0, 1.0.0.0) => equal
version_compare(1.0, 1.0.0.1) => right is higher
version_compare(1.1, 1.0.0.1) => left is higher

1 个答案:

答案 0 :(得分:0)

我会这样做;

  function versionCompare($a, $b) {

       $a = str_replace('.', '', $a);
       $b = str_replace('.', '', $b);

       $len = max(array(strlen($a), strlen($b)));


       $a = (int) str_pad($a, $len, '0', STR_PAD_RIGHT);
       $b = (int) str_pad($b, $len, '0', STR_PAD_RIGHT);

       if ($a === $b) {
           // Versions are equal
       } elseif ($a > $b) {
           // First version is higher
       } else {
           // Last version is higher
       }
  }