找到遗失的号码。从阵列

时间:2016-02-04 07:55:16

标签: php

$var=array(1,5,6,7,11,2,.......,45,100);

在上面的数组中,总数为99(从1到100,但缺失编号在1到100之间)。

我想找到缺少的。

3 个答案:

答案 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)

尝试

  • 对数组进行排序。
  • 使用for循环,检查是否(a [i]!= a [i-1] + 1),然后(a [i] - 1)是缺失的数字。