$var=array(1,5,6,7,11,2,.......,45,100);
在上面的数组中,总数为99(从1到100,但缺失编号在1到100之间)。
我想找到缺少的。
答案 0 :(得分:0)
您可以尝试使用array_diff
<?php
for ($ii = 0; $ii < 100; $ii++)
$completeArray[] = $ii;
$arrayPart = array(1,3,5,7,9,11,13);
$missing = array_diff($completeArray, $arrayPart);
var_dump($missing);
答案 1 :(得分:0)
我会生成一个包含所有元素的数组,然后使用array_diff()
获取2个数组之间的差异。
一个简单的例子:
$all = range(1,100);
$missing = array_reverse($all); // to show that order / keys don't matter
unset($missing[41]); // remove 1 item
var_dump(array_diff($all, $missing));
结果:
array(1) {
[58]=>
int(59)
}
因此,在您的情况下,您只需要:
array_diff(range(1, 100), $var)
答案 2 :(得分:0)
尝试