PHP中如何合并多个数组并提取唯一元素?
在PHP中合并多数组并保留唯一元素的简便实现
当然有非常简便的实现方式!PHP的内置函数组合起来就能快速完成这个需求,不需要复杂的循环逻辑。我直接给你完整的实现代码,再一步步拆解说明:
首先,先把你的所有数组整理到一个集合里(方便后续统一处理):
$inputArrays = [ ["ar1"], ["ar2"], ["ar2"], ["ar3"], ["ar4","ar2","ar5"], ["ar6","ar1"], ["ar5","ar3","ar7"], ["ar8","ar9","ar7"], ["ar3"] ];
接下来通过三步就能得到你想要的结果:
- 扁平化合并所有数组:用
array_merge()配合展开运算符...,把嵌套的子数组全部合并成一个一维数组 - 移除重复元素:用
array_unique()函数自动过滤掉重复值 - 转成逗号分隔的字符串:用
implode()把数组元素拼接成目标格式
完整代码如下:
$inputArrays = [ ["ar1"], ["ar2"], ["ar2"], ["ar3"], ["ar4","ar2","ar5"], ["ar6","ar1"], ["ar5","ar3","ar7"], ["ar8","ar9","ar7"], ["ar3"] ]; // 扁平化合并所有子数组 $merged = array_merge(...$inputArrays); // 去除重复元素 $uniqueItems = array_unique($merged); // 拼接成逗号分隔的字符串 $result = implode(',', $uniqueItems); echo $result; // 输出:ar1,ar2,ar3,ar4,ar5,ar6,ar7,ar8,ar9
如果追求代码简洁,还可以把这三步合并成一行:
$result = implode(',', array_unique(array_merge(...$inputArrays)));
补充细节说明
array_merge(...$inputArrays):展开运算符...会把$inputArrays中的每个子数组作为独立参数传给array_merge,一次性完成所有数组的扁平化合并,比循环逐个合并更高效。array_unique():默认会保留元素第一次出现的实例,移除后续重复项,完全匹配你的需求。implode():第一个参数是分隔符(这里用逗号),第二个参数是目标数组,能快速把数组转成你需要的字符串格式。
内容的提问来源于stack exchange,提问作者Klaus
相关产品推荐
相关产品推荐

