PHP 获取数组交集131


在 PHP 中,获取两个或多个数组的交集是一个常见的操作。交集是指两个数组中共同拥有的元素。

要查找 PHP 数组的交集,可以使用以下几种方法:

array_intersect() 函数

array_intersect() 函数是获取数组交集最简单的方法。它接受两个或更多数组作为参数,并返回一个包含这些数组中共同元素的新数组。

例如:```php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [3, 4, 5, 6, 7];
$intersection = array_intersect($arr1, $arr2);
print_r($intersection); // 输出:Array ( [0] => 3 [1] => 4 [2] => 5 )
```

array_intersect_assoc() 函数

array_intersect_assoc() 函数类似于 array_intersect(),但它保持键的关联。这意味着它返回一个交集数组,其中键与输入数组中的键相同。

例如:```php
$arr1 = ['a' => 1, 'b' => 2, 'c' => 3];
$arr2 = ['b' => 2, 'c' => 3, 'd' => 4];
$intersection = array_intersect_assoc($arr1, $arr2);
print_r($intersection); // 输出:Array ( [b] => 2 [c] => 3 )
```

array_map() 函数和 in_array() 函数

也可以使用 array_map() 和 in_array() 函数组合来获取数组交集。array_map() 函数将回调函数应用于每个数组中的元素,而 in_array() 函数检查一个元素是否在另一个数组中。

例如:```php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [3, 4, 5, 6, 7];
$intersection = array_filter($arr1, function ($element) use ($arr2) {
return in_array($element, $arr2);
});
print_r($intersection); // 输出:Array ( [0] => 3 [1] => 4 [2] => 5 )
```

array_uintersect() 函数

array_uintersect() 函数是获取数组交集的高级方法。它接受两个或更多数组和一个用户定义的比较函数作为参数。比较函数用于确定数组中的哪些元素被认为相等。

例如:```php
$arr1 = [
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Mary'],
['id' => 3, 'name' => 'Bob'],
];
$arr2 = [
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Michael'],
];
$intersection = array_uintersect($arr1, $arr2, function ($a, $b) {
return $a['id'] $b['id'];
});
print_r($intersection); // 输出:Array ( [0] => Array ( [id] => 1 [name] => John ) )
```

在 PHP 中获取数组交集有多种方法。选择最合适的方法取决于具体情况。array_intersect() 和 array_intersect_assoc() 函数通常适用于简单的用例,而 array_map()、in_array() 和 array_uintersect() 函数提供了更高级的自定义选项。

2024-12-09


上一篇:PHP 数据库语言指南:掌握数据管理的基础

下一篇:PHP 字符串操作指南