当前位置: 首页> 最新文章列表> array_diff_key() 的基本语法与参数说明

array_diff_key() 的基本语法与参数说明

M66 2025-06-06

在 PHP 中,array_diff_key() 是一个用于计算两个数组差集的函数。它会返回一个数组,其中包含所有存在于第一个数组但不存在于第二个数组的键值对。这个函数基于数组的键来进行比较,而不是值。

基本语法

array_diff_key(array $array1, array $array2, array ...$arrays): array

参数说明:

  1. $array1
    这是要进行比较的第一个数组。

  2. $array2
    这是要与 $array1 进行比较的第二个数组。该数组中的键会被从 $array1 中移除。

  3. $arrays (可选)
    可以传递更多的数组来进行比较,array_diff_key() 会将这些数组中的键从 $array1 中移除。

返回值:

该函数返回一个新的数组,包含在 $array1 中存在但在 $array2 或其他传递的数组中不存在的所有键值对。

示例代码

以下是使用 array_diff_key() 函数的示例:

<?php
$array1 = [
    "apple" => 1,
    "banana" => 2,
    "cherry" => 3
];

$array2 = [
    "banana" => 2,
    "cherry" => 3
];

$result = array_diff_key($array1, $array2);
print_r($result);
?>

输出:

Array
(
    [apple] => 1
)

在这个示例中,array_diff_key() 会比较 $array1$array2,并且返回一个包含键 "apple" 的新数组,因为这个键只在 $array1 中存在,而不在 $array2 中。

使用多个数组

你也可以传递多个数组给 array_diff_key(),它会比较 $array1 和其他所有数组中的键,返回包含 $array1 中存在但不在其他数组中的键值对。

<?php
$array1 = [
    "apple" => 1,
    "banana" => 2,
    "cherry" => 3,
    "date" => 4
];

$array2 = [
    "banana" => 2,
    "cherry" => 3
];

$array3 = [
    "apple" => 1,
    "date" => 4
];

$result = array_diff_key($array1, $array2, $array3);
print_r($result);
?>

输出:

Array
(
    [banana] => 2
)

在这个示例中,array_diff_key() 比较了 $array1$array2$array3,并返回了包含键 "banana" 的数组,因为它只在 $array1 中出现,但在 $array2$array3 中都有。

注意事项

  • array_diff_key() 是基于键的比较,而不是值。所以它不会考虑数组中的值,仅仅是对键进行操作。

  • 如果你传递了多个数组,函数将比较这些数组的键,并返回一个包含 $array1 中独有键的数组。

  • 如果某个键在所有数组中都有,结果中将不会包含这个键。

相关链接

如果你想查看更多关于 array_diff_key() 函数的详细文档,参考以下链接:

PHP 官方文档:array_diff_key()