排序和获取最高值代码

问题描述

我在表中有一个像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;