比较 PHP 中不同长度的版本



我错了还是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

我会这样做;

  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
       }
  }

相关内容

  • 没有找到相关文章

最新更新