如何从PHP中的两个不同数组中获取公共值

如何从PHP中的两个不同数组中获取公共值,php,arrays,Php,Arrays,我有两个带有用户id的数组 $array1 = array("5","26","38","42"); $array2 = array("15","36","38","42"); 我需要的是,我需要数组中的公共值,如下所示 $array3 = array(0=>"38", 1=>"42"); 我尝试了数组_intersect()。我想得到一个执行时间最短的方法。朋友们,请帮帮我。本机PHP函数比尝试构建自己的算法要快 $result = array_intersect($arra

我有两个带有用户id的数组

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

$array2 = array("15","36","38","42");
我需要的是,我需要数组中的公共值,如下所示

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

我尝试了
数组_intersect()
。我想得到一个执行时间最短的方法。朋友们,请帮帮我。

本机PHP函数比尝试构建自己的算法要快

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

使用这个方法,尽管这可能是一个很长的方法:

$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)

我认为您不需要对问题使用
$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);
?>

array_intersect()工作正常

数组相交(数组$array1,数组$array2[,数组$…] )


array\u intersect()
仍然是您的最佳选择。
array\u intersect
有什么问题吗?它不可能太慢吗?这可能会有帮助::祝你好运:你能提出一个原因,为什么你的答案比数组_intersect更好…有没有我可以循环使用$result的值?我知道$result变量将给我一个键值对数组……但现在我只想要值,而不是键。
$array1 = array("5","26","38","42");

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

echo array_intersect($array1, $array2);