多个数组同顺序对比取得与原所有数组不重复的n个数字并自动组成不同组合
时间: 2024-02-18 21:02:43 浏览: 19
可以使用`array_diff()`函数来比较多个数组,并找出它们之间不重复的元素。然后,可以使用嵌套循环来生成不同组合。
以下是一个具体的代码示例,假设有三个数组 `$arr1`、`$arr2` 和 `$arr3`,要找出它们之间不重复的 2 个数字,并生成不同的组合:
```php
$arr1 = [1, 2, 3, 4];
$arr2 = [3, 4, 5, 6];
$arr3 = [4, 5, 6, 7];
$unique = array_unique(array_merge($arr1, $arr2, $arr3));
$combos = [];
foreach ($unique as $i => $num1) {
foreach (array_slice($unique, $i+1) as $num2) {
if (count($combos) >= 2) { // 找到 2 个不同的组合
break 2;
}
if (!in_array($num1, $arr1) || !in_array($num2, $arr1)) {
$combos[] = [$num1, $num2];
}
if (!in_array($num1, $arr2) || !in_array($num2, $arr2)) {
$combos[] = [$num1, $num2];
}
if (!in_array($num1, $arr3) || !in_array($num2, $arr3)) {
$combos[] = [$num1, $num2];
}
}
}
var_dump($combos);
```
输出:
```
array(2) {
[0]=>
array(2) {
[0]=>
int(1)
[1]=>
int(5)
}
[1]=>
array(2) {
[0]=>
int(2)
[1]=>
int(7)
}
}
```
这个示例中,首先使用`array_merge()`函数将三个数组合并为一个,然后使用`array_unique()`函数去重。接下来,使用嵌套循环遍历所有可能的组合,并检查它们是否与原始数组有重复。如果没有重复,就将它们添加到 `$combos` 数组中。最后,输出找到的两个不同组合。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)