PHP | Найти пересечение двух массивов

Опубликовано: 24 Февраля, 2022

Вам даны два массива по n элементов в каждом. Вам нужно найти все общие элементы обоих элементов, не используя какой-либо цикл в php, и распечатать получившийся массив общих элементов.

Пример:

Ввод: array1 [] = {3, 5, 2, 7, 9}, 
        array2 [] = {4, 3, 2, 7, 8}
Выход: массив (
                [0] => 3,
                [1] => 2,
                [2] => 7)
                
Ввод: array1 [] = {3, 5, 7}, 
        array2 [] = {2, 4, 6}
Выход: массив (
                )

В C / Java мы должны пройти по одному из массивов, и для каждого элемента вы должны проверить его присутствие во втором массиве. Но PHP предоставляет встроенную функцию (array_intersect ()), которая возвращает общие элементы (пересекаются) двух массивов.

array_intersect ($ array1, $ array2): возвращает массив, содержащий все значения array1, которые присутствуют в array2.
Обратите внимание, что ключи сохранены.

Note : As array_intersect() returns array with preserved keys, we will use array_values() which will re-order the keys.

// find intersect of both array
$result = array_intersect($array1, $array2);

// re-order keys
$result = array_values($result);

// print resultant array
print_r($result);
<?php
// declare arrays
$array1 = array(2, 5, 7, 6, 9);
$array2 = array(3, 2, 5, 6, 8);
  
// find intersect of both array
$result = array_intersect($array1, $array2);
  
// re-order keys
$result = array_values($result);
  
// print resultant array
print_r($result);
?>
Output:
Array
(
    [0] => 2
    [1] => 5
    [2] => 6
)
PHP