我有一个像
这样的版本变量$version = "3.4.5";
像
这样的verison数组$verison= ["3.7.8", "3.5.2", "3.4.6", "3.3.2", "3.3.1", "3.2.1"];
我必须从$verison
数组返回一个大于verison字符串"3.4.5";
的数组
结果数组将是
$final=["3.7.8", "3.5.2", "3.4.6"]
如何使用PHP代码执行
答案 0 :(得分:3)
您可以使用array_filter()
,然后直接比较版本字符串。
注意:这可能仅适用于每个subversion数字只有一个char。如果大于9,您可以使用.
拆分版本,可以单独比较每个颠覆编号。
array_filter($array, function($v) use ($version){return $v > $version;});
答案 1 :(得分:3)
使用array_filter
和version_compare
:
$versions= ["3.7.8", "3.5.2", "3.4.6", "3.3.2", "3.3.1", "3.2.1"];
$version = "3.4.5";
$result = array_filter($versions, function($v) use ($version){return version_compare($v, $version, '>=');});
print_r($result);
输出:
Array
(
[0] => 3.7.8
[1] => 3.5.2
[2] => 3.4.6
)
参考: http://php.net/array_filter http://php.net/version_compare