从数组中获取特定部分的PHP代码
我有一个版本变量,比如从数组中获取特定部分的PHP代码,php,Php,我有一个版本变量,比如 $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代码执行它您可以使用array\u filter()并直接比较版本字符串 注意:这
$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代码执行它您可以使用array\u filter()
并直接比较版本字符串
注意:这可能只适用于每个subversion编号,仅适用于一个字符。如果大于9,您可以使用
拆分版本,可以分别比较每个subversion编号。
您可以使用array\u filter()
并直接比较版本字符串
注意:这可能只适用于每个subversion编号,仅适用于一个字符。如果大于9,您可以使用
拆分版本,可以分别比较每个subversion编号。
使用array\u filter
和version\u 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
)
参考:
使用阵列过滤器和版本比较:
$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
)
参考:
不能将数字作为字符串进行比较。我认为您应该迭代列表,将字符串elemnt转换为一个数字,删除点,然后与版本进行比较。如果是greatter,则将其添加到新列表中。版本数组是否从高到低排序?不能将numer作为字符串进行比较。我认为您应该迭代列表,将字符串elemnt转换为一个数字,删除点,然后与版本进行比较。如果是greatter,则将其添加到新列表中。版本数组是否从高到低排序?@Psl您可以将('.',$version)
分解为一个数组,然后分别比较每个元素。但是我推荐Calimero的version\u compare
函数和他的答案。@Psl您可以分解('.',$version)
到一个数组,然后分别比较每个元素。但是我推荐Calimero的version\u compare
函数和他的答案。