php 取出数组的交集,php-如何获取多维数组的交集?
时间: 2023-12-24 22:12:17 浏览: 140
要取出数组的交集,可以使用 PHP 内置函数 `array_intersect()`。这个函数可以接受两个或多个数组作为参数,返回它们的交集。例如,下面的代码将取出两个数组的交集:
```php
$array1 = array('apple', 'banana', 'orange');
$array2 = array('banana', 'kiwi', 'orange');
$intersect = array_intersect($array1, $array2);
print_r($intersect);
```
输出结果:
```
Array
(
[1] => banana
[2] => orange
)
```
要获取多维数组的交集,可以使用递归和 `array_intersect()` 函数。下面的代码展示了如何获取两个多维数组的交集:
```php
function array_intersect_recursive($arrays) {
$arrays = array_values($arrays);
$result = array_shift($arrays);
foreach ($arrays as $array) {
$result = array_intersect($result, $array);
}
return $result;
}
$array1 = array(
array('apple', 'banana', 'orange'),
array('peach', 'plum', 'pear')
);
$array2 = array(
array('banana', 'kiwi', 'orange'),
array('peach', 'plum', 'cherry')
);
$intersect = array_intersect_recursive(array($array1, $array2));
print_r($intersect);
```
输出结果:
```
Array
(
[0] => peach
[1] => plum
)
```
这个函数将多维数组展开成一维数组,然后使用 `array_intersect()` 函数计算交集,最后将交集还原成多维数组。
阅读全文