我知道我可以使用array_unique(array_merge($a,$b));
合并两个数组,然后删除所有重复项
但是,
是否有个人功能会为我做这个?
(我知道我可以自己写一个只调用这些,但我只是想知道)。
答案 0 :(得分:6)
没有这样的功能。编程语言通常会为您提供一组特定的工具(函数),然后您可以将它们组合起来以获得所需的结果。
为每个用例创建一个新函数毫无意义,除非它是一个非常常见的用例 - 而你的用例似乎不是一个。
答案 1 :(得分:5)
不,array_unique(array_merge($a,$b));
就是这样做的。
答案 2 :(得分:0)
默认情况下没有。你可以用另一种方式做到(虽然可能不那么聪明)
$array1 = array('abc', 'def');
$array2 = array('zxd', 'asdf');
$newarray = array_unique(array($array1, $array2));
做同样的事情。只是想知道为什么你发布的不够好?
答案 3 :(得分:0)
//usage $arr1=array(0=>"value0", 1=>"value1", 2=>"value2"); $arr2=array(0=>"value3", 1=>"value4", 2=>"value0") => $result=mergeArrays($arr1,$arr2); $result=Array ( [0] => value0 [1] => value1 [2] => value2 [3] => value3 [4] => value4 )
function mergeArrays () {
$result=array();
$params=func_get_args();
if ($params) foreach ($params as $param) {
foreach ($param as $v) $result[]=$v;
}
$result=array_unique($result);
return $result;
}
答案 4 :(得分:0)
在php 5.6+中,您还可以使用新参数解压缩来避免多次array_merge调用(这会显着加快您的代码速度):https://3v4l.org/arFvf
<?php
$array = [
[1 => 'french', 2 => 'dutch'],
[1 => 'french', 3 => 'english'],
[1 => 'dutch'],
[4 => 'swedish'],
];
var_dump(array_unique(array_merge(...$array)));
输出:
array(4) {
[0]=>
string(6) "french"
[1]=>
string(5) "dutch"
[3]=>
string(7) "english"
[5]=>
string(7) "swedish"
}