📅  最后修改于: 2023-12-03 15:10:22.856000             🧑  作者: Mango
在 PHP 中,有多种方法可以判断两个数组是否相交。本文将介绍几种常见的方法,并提供示例代码。
array_intersect
函数可以用于比较两个或多个数组的交集。它返回一个数组,包含所有出现在所有输入数组中的值。
array_intersect(array $array1, array $array2, ...): array
$array1
, $array2
, ...:输入数组。一个包含所有输入数组中出现的值的数组。
<?php
$array1 = ['a', 'b', 'c'];
$array2 = ['b', 'c', 'd'];
$result = array_intersect($array1, $array2);
print_r($result);
?>
输出:
Array
(
[1] => b
[2] => c
)
array_uintersect
函数可以用于比较两个或多个数组的交集,并使用回调函数来比较数组中的元素。它返回一个数组,包含所有出现在所有输入数组中的值。
array_uintersect(array $array1, array $array2, ..., callable $callback): array
$array1
, $array2
, ...:输入数组。$callback
:一个回调函数,用于比较数组中的元素。函数应该返回一个整数,表示比较结果。更多细节请参阅 PHP 文档。一个包含所有输入数组中出现的值的数组。
<?php
$array1 = ['a', 'b', 'c'];
$array2 = ['b', 'c', 'd'];
$result = array_uintersect($array1, $array2, 'strcasecmp');
print_r($result);
?>
输出:
Array
(
[1] => b
[2] => c
)
array_intersect_key
函数可以用于比较两个或多个数组的交集,并使用键名来比较数组中的元素。它返回一个数组,包含所有出现在所有输入数组中,并且键名也出现在所有输入数组中的值。
array_intersect_key(array $array1, array $array2, ...): array
$array1
, $array2
, ...:输入数组。一个包含所有输入数组中出现的值,且键名也出现在所有输入数组中的数组。
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$result = array_intersect_key($array1, $array2);
print_r($result);
?>
输出:
Array
(
[b] => 2
[c] => 3
)
array_uintersect_assoc
函数可以用于比较两个或多个数组的交集,并使用回调函数和键名来比较数组中的元素。它返回一个数组,包含所有出现在所有输入数组中,并且键名也出现在所有输入数组中的值。
array_uintersect_assoc(array $array1, array $array2, ..., callable $callback): array
$array1
, $array2
, ...:输入数组。$callback
:一个回调函数,用于比较数组中的元素和键名。函数应该返回一个整数,表示比较结果。更多细节请参阅 PHP 文档。一个包含所有输入数组中出现的值,且键名也出现在所有输入数组中的数组。
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$result = array_uintersect_assoc($array1, $array2, function($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
});
print_r($result);
?>
输出:
Array
(
[b] => 2
[c] => 3
)
array_intersect_ukey
函数可以用于比较两个或多个数组的交集,并使用回调函数来比较数组中的键名。它返回一个数组,包含所有出现在所有输入数组中,并且键名也出现在所有输入数组中的值。
array_intersect_ukey(array $array1, array $array2, ..., callable $callback): array
$array1
, $array2
, ...:输入数组。$callback
:一个回调函数,用于比较数组中的键名。函数应该返回一个整数,表示比较结果。更多细节请参阅 PHP 文档。一个包含所有输入数组中出现的值,且键名也出现在所有输入数组中的数组。
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$result = array_intersect_ukey($array1, $array2, function($key1, $key2) {
return strcasecmp($key1, $key2);
});
print_r($result);
?>
输出:
Array
(
[b] => 2
[c] => 3
)
以上就是 PHP 中数组相交的几种常见方法。你可以根据自己的需求,在这些方法之间进行选择。如果你想了解更多有关 PHP 数组操作的信息,请查看 PHP 文档。