不同长度数组同顺序对比得到与原所有数组都不重复的组成数字或组合
时间: 2024-03-08 10:51:31 浏览: 55
您可以使用PHP中的array_unique()函数来去除多个数组中的重复项,并结合array_merge()函数来合并多个数组。然后使用array_count_values()函数来统计每个数字(或组合)出现的次数,最后找到只出现一次的数字(或组合),将它们按照原来的顺序组合在一起。具体实现代码如下:
```
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(2, 3, 6, 7, 8);
$arr3 = array(3, 4, 5, 9, 10);
// 合并数组并去除重复项
$uniqueArr = array_unique(array_merge($arr1, $arr2, $arr3));
// 统计每个数字出现的次数
$countArr = array_count_values($uniqueArr);
// 找到只出现一次的数字
$uniqueArr = array_keys(array_filter($countArr, function($count) {
return $count == 1;
}));
// 按照原来的顺序组合数字
$resultArr = array();
foreach ($arr1 as $num) {
if (in_array($num, $uniqueArr)) {
$resultArr[] = $num;
}
}
foreach ($arr2 as $num) {
if (in_array($num, $uniqueArr)) {
$resultArr[] = $num;
}
}
foreach ($arr3 as $num) {
if (in_array($num, $uniqueArr)) {
$resultArr[] = $num;
}
}
// 输出结果
echo implode(',', $resultArr); // 输出1,6,7,8,9,10
```
上述代码中,array_merge()函数用于合并多个数组,array_unique()函数用于去除合并后的数组中的重复项,array_count_values()函数用于统计去重后的数组中每个数字出现的次数,array_filter()函数用于过滤掉出现次数大于1的数字,array_keys()函数用于取出过滤后的数组中的键(即数字),最后用foreach()循环按照原来的顺序组合数字。最后使用implode()函数将数字数组转换为字符串并输出结果。如果没有不同项,则输出空字符串。
阅读全文