我有一个像这个$ ids = array(3,7,6,5,1,8,11)这样的数组.我们怎么知道缺失值是2,4,9,10?
我预计$ ids值1,2,3,4,5,6,7,8,9,10,11和订单无关紧要,可能是3,5,6,1,2,4,8, 9,10,11.
我不需要用缺少的值填充我的数组,我只想知道谁缺少了
Mar*_*ich 23
这是一个很好的单线程:
$ids = array(3,5,6,7,8,11);
$missing = array_diff(range(1, max($ids)), $ids);
Run Code Online (Sandbox Code Playgroud)
$numbers = array(3,5,6,7,8,11);
$missing = array();
for ($i = 1; $i < max($numbers); $i++) {
if (!in_array($i, $numbers)) $missing[] = $i;
}
print_r($missing); //1,4,9,10
Run Code Online (Sandbox Code Playgroud)