找到new并从中删除数组元素两个数组?

时间:2013-05-07 07:12:50

标签: php arrays

我有两个数组

$a1     = array('1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4', '5'=>'5', '6'=>'6');
$a2     = array('1'=>'1', '2'=>'2', '3'=>'3', '6'=>'6', '7'=>'7', '8'=>'8');

我希望得到两个数组作为输出第一个数组,它返回从第一个数组中删除的元素。 第二个返回新元素的数组

2 个答案:

答案 0 :(得分:1)

要获取包含不再位于第二个数组中的所有元素的数组,可以使用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
)

要获取包含两个数组中所有元素(未删除)的数组,可以使用array_intersect

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

Array
(
    [a] => green
    [0] => red
)

答案 1 :(得分:0)

$a1   = array('1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4', '5'=>'5', '6'=>'6');
$a2   = array('1'=>'1', '2'=>'2', '3'=>'3', '6'=>'6', '7'=>'7', '8'=>'8');
$out1 = array_diff($a1,$a2);
$out2 = array_diff($a2,$a1);