问题描述
我在表中有一个像token_number这样的数组,插入该行的值就像
token_number
1
2
3
15
4
5
6
14
7
8
18
10
11
9
etc..
我对这些值进行排序 1,2,3,4,5,6,7,8,9,10,11,14,15,18
我想从此排序数组中获取值11 即具有共同差异1的最高数字
如何从该数组中获取11个?
解决方法
由于数组已排序,因此您可以从底部开始向后循环:
$arr = // sorted array;
$max = null;
for( $i = count($arr) - 1 ; $i > 0 ; $i++ ){
if($arr[$i] - 1 == $arr[$i-1]){
$max = $arr[$i-1];
break;
}
}
if($max !== null){
echo "founded: " . $max;
}
,
您可以找到具有命令差异的最高编号,如下所示。
$arr= array(1,2,3,4,5,6,7,8,9,10,11,14,15,18);
$highestNo = null;
for($i=0 ;$i <= count($arr) - 1 ; $i++ ){
$diff = $arr[$i+1] - $arr[$i]; //check difference of current and next number
if($diff != 1){
$highestNo = $arr[$i];
break;
}
}
echo "Highest number with comman difference is: " . $highestNo;