Задача №14

задача 14

Есть два массива "a" и "b". На вход вашей программе подаётся массив "a" случайных чисел (10 элементов) из диапазона от 1 до 20. Задача: вывести на экран все числа, которые не содержатся в массиве "b"

$b = [12, 5, 17, 6, 4];

Решите эту задачу двумя способами:

Без использования in_array()(link is external)
С использованием in_array()(link is external) (что проще)

Вариант 1

define('N', 10);
function fillArray ($n) {
    $arr = [];
    for ($i = 0; $i < $n; $i++) {
      $arr[$i] = random_int(1, 20);                             
    }
    return $arr;
}
function showArr ($n) {
    foreach ($n as $value) {
       echo $value, " ";                
   }
} 
function contain($arr) {
    $b = [12, 5, 17, 6, 4];  
    foreach ($arr as $value) {
        $f = true;
        $n = $value;
        foreach ($b as $value) {
          if ($n == $value) {
            $f = false;
          }
    }
        if ($f) {
          echo $n, "<br>";
        }
    }
}
        
$a = fillArray(N);
showArr($a);
echo "<br>";  
contain($a);

Результат

16 14 14 13 17 19 10 8 4 4
16 14 14 13 19 10 8 

Вариант 2

define('N', 10);
function fillArray ($n) {
    $arr = [];
    for ($i = 0; $i < $n; $i++) {
      $arr[$i] = random_int(1, 20);                             
    }
    return $arr;
}
function showArr ($n) {
    foreach ($n as $value) {
       echo $value, " ";                
   }
} 
function contain($arr) {
   $b = [12, 5, 17, 6, 4];  
   foreach ($arr as $value) {
      if ((in_array($value, $b)) === false) {
         echo $value, " ";
      }
   }
}
$a = fillArray(N);
showArr($a);
echo "<br>";  
contain($a);

Результат:

5 3 5 17 4 3 4 15 6 19
3 3 15 19