不使用 PHP 内置函数打印数字

Printing numers without using PHP inbuild functions

$numbers = array(3,5,6,7,8,11);
$missing = array();
for ($i = 3; $i < 11; $i++) {
    if (!in_array($i, $numbers)){
        $missing[] = $i;
    }
}

我想在不使用PHP innuild函数的情况下找到从311缺失的数字,我试过了但还没有完全完成。

在这段代码中我使用了 in_array 但没有这个我必须这样做。任何人帮助 here.I 我是 PHP 的新手,使用 PHP inbuild 我可以做到这一点,但这不是我的情况。

$numbers 上使用 foreach 循环并检查 $i 的值。声明一个标志变量,比如 $foundfalse。如果我们得到数字,在内部循环时,将 $found 设置为 true 并退出循环。最后,如果$found仍然为false,则将当前的$i添加到结果中。

<?php

$numbers = array(3,5,6,7,8,11);
$missing = array();

for ($i = 3; $i <= 11; $i++) {
    $found = false;
    foreach($numbers as $value){
        if($value === $i){
            $found = true;
            break;
        }
    }
    
    if(!$found) $missing[] = $i;
}


print_r($missing);

Online Demo

您可以使用 array_diff 与 :


$numbersOrigin = range(3, 11);
$numbers = array(3,5,6,7,8,11);

$missing = array_diff($numbersOrigin, $numbers);

使用内置函数:

$numbers = array(3,5,6,7,8,11);
$missing = array();
$index = 0;
for ($i = 3; $i < 11; $i++) {
   if ($numbers[$index] === $i) {
         $index++;
   } else {
      $missing[] = $i;
   }
}