8

好的,两个数组:

$first = array(1,2,3,4,5,6,7,8,9,10);
$second = array(1,2,3,4,5);

有没有办法(如果可以帮助的话,不循环它们)做一个 array_merge 风格的函数,它返回这个数组:

$new = array(6,7,8,9,10);

如果找到匹配项,则不会返回它。

4

5 回答 5

11

array_diff()

$new = array_diff($first, $second);
print_r($new);

/*
Array
(
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10
)
*/
于 2012-06-08T15:43:03.380 回答
2

array_diff()应该这样做:

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

Array
(
    [1] => blue
)
于 2012-06-08T15:42:43.147 回答
1

它不是十字路口,而是不同之处

http://www.php.net/manual/en/function.array-diff.php

array_diff ( $array1 , $array2)
于 2012-06-08T15:42:58.123 回答
0

您正在以离散的方式寻找一个交集:

http://php.net/manual/en/function.array-intersect.php

编辑:哎呀,你想要相反的东西。

编辑2:给你,你想要不同:

http://php.net/manual/en/function.array-diff.php

于 2012-06-08T15:41:34.443 回答
0

试试这个:

$new = array_diff($first , $second );
于 2012-06-08T15:44:17.563 回答