【问题标题】:Sorting and getting higest values codeigniter排序和获取最大值codeigniter
【发布时间】:2020-09-06 09:54:54
【问题描述】:

我在表中有一个类似于 token_number 的 cloumn,插入此行的值就像

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?

【问题讨论】:

  • 一种方法是循环它并检查每次迭代。

标签: php arrays codeigniter codeigniter-3


【解决方案1】:

由于数组是排序好的,你可以从底部开始往后循环:

$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;
}

【讨论】:

    【解决方案2】:

    你可以找到最大的数字与命令差异如下。

    $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;
    

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多