Как получить общие значения из двух разных массивов в PHP

У меня есть два массива с некоторым идентификатором пользователя

$array1 = array("5","26","38","42");

$array2 = array("15","36","38","42");

Что мне нужно, так это общие значения из массива следующим образом

$array3 = array(0=>"38", 1=>"42");

Я пытался array_intersect(). Я хотел бы получить метод, который занимает минимальное время выполнения. Пожалуйста, помогите мне, друзья.

Ответ 1

Родные функции PHP быстрее, чем пытаться создать собственный алгоритм.

$result = array_intersect($array1, $array2);

Ответ 2

Используйте этот, хотя это может быть длинный метод:

$array1 = array("5","26","38","42");

$array2 = array("15","36","38","42");

$final_array = array();

foreach($array1 as $key=>$val){
    if(in_array($val,$array2)){
        $final_array[] = $val;
    }
}

print_r($final_array);

Результат: Массив ([0] = > 38 [1] = > 42)

Ответ 3

Я думаю, вам не нужно использовать $key=>$value для вашей проблемы, поэтому проверьте этот ответ:

<?php
$array1 = array("5", "26", "38", "42");
$array2 = array("15", "36", "38", "42");

foreach ($array1 as $value) {
    if (in_array($value, $array2)) {
        $array3[] = $value;
    }
}

print_r($array3);
?>

Ответ 4

array_intersect() отлично работает.

массив array_intersect (массив $array1, array $array2 [, array $...] )

$array1 = array("5","26","38","42");

$array2 = array("15","36","38","42");

echo array_intersect($array1, $array2);

http://fr2.php.net/array_intersect