-2

有没有做逆运算的函数array_diff()

我的意思是,如果我有:

array(1,2,3)
array(3,4,5)

我想那个函数返回array(3),或者直接返回3

注意:array_intersect()不适合我。

哈维尔

4

3 回答 3

3

如果 array_intersect() doesn't fit me是因为它返回:

Array
(
    [2] => 3
)

并不是:

Array
(
    [0] => 3
)

或者 3

然后您可以轻松地将数组转换为可使用array_values()的东西:

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

$new = array_values(array_intersect($arr1,$arr2));
$new = $new[0];
print_r($new); //3
?>

否则请说明您的情况。

于 2012-06-09T20:45:52.123 回答
0

尝试array_intersect()这将计算数组的交集

于 2012-06-09T20:36:22.127 回答
0

由于您不想使用array_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));
于 2012-06-09T20:50:46.157 回答