PHP比较2个数组,仅获取不匹配的值

时间:2019-01-28 09:10:40

标签: php arrays

我有2个数组,我想获取不相同的值,但是由于某些原因,这是行不通的:

$newArray = array_unique(array_merge($array1, $array2)

var_dump(array1) = array(3) { [0]=> string(17) "verbal aggression" [1]=> string(19) "physical aggression" [2]=> string(3) "vol" }

var_dump(array2) = array(2) { [0]=> string(17) "verbal aggression" [1]=> string(19) "physical aggression" }

所以我怀疑$ newArray是:

array(1) { [0]=> string(3) "vol"" }

2 个答案:

答案 0 :(得分:3)

array_diff —计算数组的差异

$array1 = array("verbal aggression", "physical aggression", "vol");
$array2 = array("verbal aggression", "physical aggression");

$result=array_diff($array1,$array2);
print_r($result);

输出:

Array
(
    [2] => vol
)

答案 1 :(得分:1)

如果需要两个数组之间的差值,可以使用@Sunil建议的array_diff。但这只会找到$array1中的元素,而不会找到$array2中的元素。

如果要查找差异,请使用以下功能。这还将找到$array2中但不在$array1

中的元素
function differences($array1, $array2){
    return array_merge(array_diff($array1,$array2),array_diff($array2,$array1));
}