查找丢失的数组:PHP

我试图在数组中找到缺失的东西。


使用此代码


<?php                       

     $no = array(1,2,3,5,6,7);

     $max=max($no);

     for($x=0; $x<=$max; $x++){

       if(!in_array($x,$no)){ 

       $id = $x;

       }else{

       $id = $x+1;

       }                        

     }

     echo '<pre>'; print_r($id);

?>

但结果是


8


有人可以帮助我吗?


慕尼黑的夜晚无繁华
浏览 95回答 1
1回答

慕后森

无论您是否找到缺失值,您都将循环执行到最后。$id将永远如此$max+1。当您找到缺失值时,您需要跳出循环(或者如果您想要所有缺失值,请将缺失值推送到数组中)。array_diff但是,可以使用range从 0 到 中的最大值更简单地实现代码$no:$no = array(1,2,3,5,6,7);$max = max($no);// you may want to use min($no) here$min = 0;$missing = array_diff(range($min, $max), $no);// print all missing values in the rangeprint_r($missing);// if you only want the first missing valueecho min($missing);输出:Array(&nbsp; &nbsp; [0] => 0&nbsp; &nbsp; [4] => 4)0
打开App,查看更多内容
随时随地看视频慕课网APP