因为Bitbucket API没有提供获取存储库最新标记的方法,所以我发现自己必须从所有标记的数组中获取它。
你是怎么做到的?
我尝试过max,但它对某些数字不起作用,例如。
max(['1.0.8', '1.0.9', '1.0.10']);
返回' 1.0.9'。
我知道标签只会是三个数字a.b.c
,因为我们为我们的回购标记做标记,所以他们不会有其他半字节接受的字符串,例如alpha等。
那你怎么做的?
答案 0 :(得分:11)
$versions = ['1.0.8', '1.0.9', '1.0.10'];
usort($versions, 'version_compare');
echo end($versions);
请参阅http://php.net/version_compare
如果您不想修改阵列:
echo array_reduce($versions, function ($highest, $current) {
return version_compare($highest, $current, '>') ? $highest : $current;
});
答案 1 :(得分:1)
使用version_compare
功能:
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body ng-controller="indexCtrl">
Input: <input type="text" ng-model="amount">
<h3>{{amount | INR}}</h3>
</body>
</html>
答案 2 :(得分:-1)
因为你在这里处理字符串而不是数字,所以你不会得到你需要的结果。您可以尝试以下方法:
$version_numbers = str_replace(".","",['1.0.8', '1.0.9', '1.0.10']);
$max = max($version_numbers);
如果您总是处理固定的 abc 结构,那么通过替换小数点,您将得到一系列整数,可以让您相对轻松地确定最大值< / p>