Câu trả lời rõ rệt thất bại đối với trường hợp:
print_r (version_compare ("2.51.1", "2.5.1"));
Dưới đây là một giải pháp đáng tin cậy nhiều đến thế này:
function updateAppVersion($appVersion1, $appVersion2)
{
$releaseVersion = explode(".",$appVersion1);
$deviceVersion = explode(".",$appVersion2);
if($releaseVersion[0] > $deviceVersion[0])
return false;
if((floatval($releaseVersion[0].'.'.$releaseVersion[1])) > (floatval($deviceVersion[0].'.'.$deviceVersion[1])))
return false;
//in some cases, versions are numbered only up to 2 decimal places
if(isset($releaseVersion[2]) && isset($deviceVersion[2]))
if($releaseVersion[2] >= $deviceVersion[2])
return false;
return true;
}
Nguồn
2017-04-07 10:58:06
lẽ * "trật tự tự nhiên" *, Bạn đã thử http://php.net/strnatcmp? – hakre
Có gì sai với nội trang của php ['version_compare'] (http://php.net/manual/en/function.version-compare.php)? – DCoder
Kiểm tra mã của bạn trước khi bạn yêu cầu. Tôi chỉ có thể làm việc (như trong trường hợp của bạn). -1 cho điều đó. – hakre