Задача 14

Список задач

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

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

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

1. Без использования in_array()
2. С использованием in_array() (что проще)

<?php

function createRandArr($size) // создание массива случайных чисел
{
    $array = [];
     
    for ($i = 0; $i < $size; $i++) {
        $array[$i] = rand(1, 20);
    }
     
    return $array;
}
 
function showArr($array) // распечатка массива в строку
{
    foreach ($array as $value) {
		echo " {$value} |";
    }
     
    echo '<br>';
}

/**********Функция без in_array()**********/

function getUniqNum($first, $second)
{
	$uniqArr = []; // массив уникальных элементов
	$uniq = true; //уникальность элемента
	
	foreach ($first as $firstVal) {
		
		$uniq = true;
		
		foreach ($second as $secondVal) {
			
			if ($firstVal == $secondVal) {
				$uniq = false;
				break;
			}	
		}
		
		if ($uniq) {
			$uniqArr[] = $firstVal;
		}
	}
	
	return $uniqArr;
}

/**********Функция с in_array()**********/

function inArray($first, $second)
{
	$uniqArr = [];
	
	foreach ($first as $value) {
		if (!in_array($value, $second)) {
			$uniqArr[] = $value; 
		}
	}
	
	return $uniqArr;
}

$arr1 = createRandArr(10); //создаем два массива
$arr2 = createRandArr(10);

echo 'Исходные массивы: <br>';// выводим два исходных массива
showArr($arr1); 
showArr($arr2);

$uniq1 = getUniqNum($arr1, $arr2); // выбираем уникальные элементы
$uniq2 = inArray($arr1, $arr2);

echo 'Массивы уникальных: <br>'; //выводим массивы уникальных
showArr($uniq1);
showArr($uniq2);

vedro-compota's picture

засчитано

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