从数组中获取特定部分的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
函数和他的答案。