Задача №14

Задача №14

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

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

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

<?php

// Без использования in_array()
function arrayCreation(): array
{
    for ($i = 0; $i < 10; $i++) {
        $arr[] = random_int(1, 20);
    }
    return $arr;
}

function arrayOutput($firstArray, $secondArray)
{
    $fl = false;
    $cnt = count($firstArray);
    $cntB = count($secondArray);
    for ($i = 0; $i < $cnt; $i++) {
        for ($j = 0; $j < $cntB; $j++) {
            if ($firstArray[$i] == $secondArray[$j]) {
                $fl = true;
                break;
            }
        }
        if ($fl == true) {
            $fl = false;
        } else {
            echo $firstArray[$i], '<br>';
        }
    }
}

$firstArray = arrayCreation();
$secondArray = [12, 5, 17, 6, 4];
var_dump($firstArray);
echo '<br>';
arrayOutput($firstArray, $secondArray);

// С использованием in_array() - это проще один цикл и меньше переменных
function arrayCreation(): array
{
    for ($i = 0; $i < 10; $i++) {
        $arr[] = random_int(1, 20);
    }
    return $arr;
}

function arrayOutput($firstArray, $secondArray)
{
    $cnt = count($firstArray);
    for ($i = 0; $i < $cnt; $i++) {
        if (in_array($firstArray[$i], $secondArray)) {
            continue;
        } else {
            echo $firstArray[$i], '<br>';
        }
    }
}

$firstArray = arrayCreation();
$secondArray = [12, 5, 17, 6, 4];
var_dump($firstArray);
echo '<br>';
arrayOutput($firstArray, $secondArray);

?>
vedro-compota's picture

массивы надо перебирать foreach

_____________
матфак вгу и остальная классика =)


// без in_array
function arrayCreation(): array
{
    for ($i = 0; $i < 10; $i++) {
        $arr[] = random_int(1, 20);
    }
    return $arr;
}

function arrayOutput($firstArray, $secondArray)
{
    $fl = false;
    foreach ($firstArray as $value) {
        foreach ($secondArray as $value_2) {
            if ($value == $value_2) {
                $fl = true;
                break;
            }
        }
        if ($fl == true) {
            $fl = false;
        } else {
            echo $value, '<br>';
        }
    }
}

$firstArray = arrayCreation();
$secondArray = [12, 5, 17, 6, 4];
var_dump($firstArray);
echo '<br>';
arrayOutput($firstArray, $secondArray);

//с in_array
function arrayCreation(): array
{
    for ($i = 0; $i < 10; $i++) {
        $arr[] = random_int(1, 20);
    }
    return $arr;
}

function arrayOutput($firstArray, $secondArray)
{
    foreach ($firstArray as $value) {
        if (in_array($value, $secondArray)) {
            continue;
        } else {
            echo $value, '<br>';
        }
    }
}

$firstArray = arrayCreation();
$secondArray = [12, 5, 17, 6, 4];
var_dump($firstArray);
echo '<br>';
arrayOutput($firstArray, $secondArray);
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)