我遇到了一个问题,我试图合并其中没有明确定义键的2个(或更多!)数组,以及我希望没有任何重复的数据。这似乎是一个愚蠢的问题,但我很难找到一种有效的方法来解决它。让我来说明一下:
// for example, here are some arrays, the last 2 are the same...
$one = array(1);
$two = array(2);
$three = array(2);
现在,理想情况下,我希望合并'这三个数组有类似的东西:
array(1, 2);
使用当前的PHP能力,这是我到目前为止所尝试的:
// this produces: array(1, 2, 2)
$merged = array_merge($one, $two, $three);
// this produces: array(2)
$merged = $one + $two + $three;
这两者对我所需要的并不完全理想。我有什么明显的遗失吗?在将它们添加到合并数组之前,我真的不想单独开始遍历每个数组以检查重复项。...
提前感谢任何见解!
答案 0 :(得分:1)
array_merge
$merged = array_unique(array_merge($one, $two, $three));
请注意,在一般情况下,这将产生一个结果,其中键不是整数序列。如果这是一个问题,请使用array_values($merged)
重新索引。
如果您正在合并批次项目,并且您希望有大量重复项目,那么探索更有效的替代方案可能是值得的,但不要先担心它。