Задача 14
Primary tabs
Есть два массива "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);
- Log in to post comments
- 1025 reads
vedro-compota
Sun, 11/21/2021 - 13:33
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)