【发布时间】:2016-07-18 03:33:18
【问题描述】:
我有以下数组:
数组(174){ [0]=> 字符串(5)“3.0.3” [1]=> 字符串(5)“3.0.2” [2]=> 字符串(5)“3.0.1” [3]=> 字符串(5)“3.0.0” [9]=> 字符串(5)“2.9.5” [10]=> 字符串(5)“2.9.4” [11]=> 字符串(5)“2.9.3” [12]=> 字符串(5)“2.9.2” [13]=> 字符串(5)“2.9.1” [14]=> 字符串(5)“2.9.0” [18]=> 字符串(6)“2.8.11” [19]=> 字符串(6)“2.8.10” [20]=> 字符串(5)“2.8.9” }我需要为唯一的前两个数字 x.x 找到最大的第三个数字。在此示例中,预期结果必须是:
3.0.3、2.9.5、2.8.11
这是我尝试过的:
foreach ($array as $key => $value) {
$test = substr($value, 0, 3);
$a = strtr($value, array('.' => '', ',' => ''));
$b = (int) $a;
$c = substr($b, 0, 2);
$new_array = array($c);
$result = array_unique($new_array);
print_object($result);
}
【问题讨论】:
-
虽然我真的很喜欢脑筋急转弯。我们希望您已经尝试过,您尝试过吗?
-
这个功能可能有帮助:php.net/manual/en/function.explode.php
-
是的,我正在努力解决这个问题。我试图先获取前两个值,然后进行比较,但我做不到。 foreach ($array as $key => $value) { $test = substr($value, 0, 3); $a = strtr($value, array('.' => '', ',' => '')); $b = (int)$a; $c = substr($b, 0, 2); $new_array = 数组($c); $result = array_unique($new_array) ;打印对象($结果); }
-
使用usort()和PHP的version_compare()作为起点;然后可能是 array_walk() 来闯入主要/次要群体
标签: php arrays semantic-versioning