PHP - array_diff_key() 函数


定义和用法

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
)

例子

这个例子返回空数组,因为 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
)