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

时间:2013-07-15 07:34:48

标签: php arrays

我有两个带有一些用户ID的数组

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

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

我需要的是,我需要数组中的常用值,如下所示

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

我尝试过 array_intersect() 。我想得到一个最少执行时间的方法。请帮帮我朋友。

4 个答案:

答案 0 :(得分:27)

原生PHP函数比尝试构建自己的算法要快。

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

答案 1 :(得分:3)

使用这个,虽然这可能是一个很长的方法:

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

array_intersect()工作正常。

  

array array_intersect(array $ 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