Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有函数可以获取两个数组中的公共元素?_Php - Fatal编程技术网

Php 有没有函数可以获取两个数组中的公共元素?

Php 有没有函数可以获取两个数组中的公共元素?,php,Php,是否有函数执行数组_diff()的逆运算 我是说,如果我有: array(1,2,3) array(3,4,5) 我希望该函数返回array(3),或者直接返回3 注意:array\u intersect()不适合我 Javier尝试此操作将计算数组的交集如果数组_intersect()不适合我是因为它返回: Array ( [2] => 3 ) 而不是: Array ( [0] => 3 ) 或 3 然后,您可以轻松地将阵列转换为可使用的: 否则请解释您的

是否有函数执行
数组_diff()
的逆运算

我是说,如果我有:

array(1,2,3)
array(3,4,5)
我希望该函数返回
array(3)
,或者直接返回
3

注意:
array\u intersect()
不适合我

Javier

尝试此操作将计算数组的交集

如果
数组_intersect()不适合我
是因为它返回:

Array
(
    [2] => 3
)
而不是:

Array
(
    [0] => 3
)
3

然后,您可以轻松地将阵列转换为可使用的:



否则请解释您的情况。

由于您不想使用
数组_intersect()
,请检查此低效方法:

$arr1= array(1,2,3);
$arr2= array(3,4,5);

function arr_intersect($array1, $array2)
{
    $array_result=array();
    $array_shared = array_diff($array1+$array2, array_diff($array1, $array2));
    $count=count($array_shared);

    return array_values($array_shared);
}

print_r(arr_intersect($arr1, $arr2));

为什么不呢
array\u intersect()
做的正是您想要的。在没有任何详细说明的情况下留下一条注释说“正好做我想要的事情的函数不适合我”,这并不是寻求帮助的正确方式。除了您提供的以外,
array\u intersect()
有效:粘贴中有两个版本。OP不希望数组相交。阅读问题。
$arr1= array(1,2,3);
$arr2= array(3,4,5);

function arr_intersect($array1, $array2)
{
    $array_result=array();
    $array_shared = array_diff($array1+$array2, array_diff($array1, $array2));
    $count=count($array_shared);

    return array_values($array_shared);
}

print_r(arr_intersect($arr1, $arr2));