如何在PHP中合并数组,使第二个数组覆盖第一个数组?

4

假设我有:

$arr1 = array('green', 'yellow', 'blue', 'red');
$arr2 = array('yellow', black, white, 'red');

如果我执行array_merge($arr1, $arr2,),那么结果会如下所示:

array(green, yellow, blue, red, yellow, black, white, red);

我希望确保数组中没有重复值,注意我不使用数组键,只使用值。

是否还有其他简单的解决方案我不知道?

3个回答

4
array_unique( array_merge( $arr1, $arr2 ) );

2
有一个PHP.net的函数可以实现此功能:
http://php.net/manual/zh/function.array-unique.php
$unique_array = array_unique(array_merge($array1, $array2, .... ));

请注意,如果您要使用键,从文档中可以看出:
"请注意,键是保留的。 array_unique() 首先对作为字符串处理的值进行排序,然后将为每个值遇到的第一个键保留,并忽略所有后续键"

专业提示:命名很糟糕,您应该使用比我更好的名称


1

只需使用 array_unique 来删除所有非唯一值:

$merged = array_unique(array_merge($arr1, $arr2));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接