定义和用法
array_diff_key() 函数将 array1 的键与 array2、array3... 并返回一个数组,其差异为 ie. 在 array1 中可用但在 array2、array3 中不可用的键...等。这个函数类似于 array_diff() 函数,不同之处在于比较是基于键而不是值完成的。
语法
array array_diff_key ( array $array1, array $array2 [, array $...] );
参数
| 参数 | 描述 |
|---|---|
| array1(Required) |
与第一个数组进行比较。 |
| array2(Required) |
与第一个数组进行比较的数组 |
| array3(Optional) |
与第一个数组进行比较的数组 |
返回值
此函数返回一个数组,其中包含 array1 的所有键,但这些键不存在于传递给函数的任何其他数组中。
PHP 版本
此函数首次引入于 PHP 版本 5.1.0 中
例子
此示例返回 4 和 5 值,因为前三个键(0、1 和 2)在两个数组中是相同的,尽管它们的值不同 -
<?php
$input1 = array(1, 2, 3, 4, 5);
$input2 = array(4, 5, 6);
$result = array_diff_key($input1, $input2);
print_r($result);
?>
这将产生以下结果 -
Array
(
[3] => 4
[4] => 5
)
(
[3] => 4
[4] => 5
)
例子
这个例子返回空数组,因为 array_diff_key() 比较的是键而不是值,因为它发现两个数组具有相同的键,尽管值不同,所以它没有发现任何差异 -
<?php
$input4 = array(1, 2, 3);
$input5 = array(4, 5, 6);
$result = array_diff_key($input4, $input5);
print_r($result);
?>
这将产生以下结果 -
Array
(
)
(
)
例子
试试下面的例子 -
<?php
$input1 = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow", "f"=>"yellow");
$input2 = array("a"=>"red","b"=>"green","c"=>"blue");
$result = array_diff_key($input1, $input2);
print_r($result);
?>
这将产生以下结果 -
Array
(
[d] => yellow
[f] => yellow
)
(
[d] => yellow
[f] => yellow
)

