数组 函数
PHP Manual

array_diff_key

(PHP 5 >= 5.1.0)

array_diff_key使用键名比较计算数组的差集

说明

array array_diff_key ( array $array1 , array $array2 [, array $ ... ] )

array_diff_key() 返回一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。

Example #1 array_diff_key() 例子

<?php
$array1 
= array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_diff_key($array1$array2));
?>

以上例程会输出:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

key => value 对中的两个键名仅在 (string) $key1 === (string) $key2 时被认为相等。换句话说,执行的是严格类型检查,因此字符串的表达必须完全一样。

Note: 注意本函数只检查了多维数组中的一维。当然,可以用 array_diff_key($array1[0], $array2[0]); 来检查更深的维度。

参见 array_diff()array_udiff()array_diff_assoc()array_diff_uassoc()array_udiff_assoc()array_udiff_uassoc()array_diff_ukey()array_intersect()array_intersect_assoc()array_intersect_uassoc()array_intersect_key()array_intersect_ukey()

参数

array1

The array to compare from

array2

An array to compare against

...

More arrays to compare against

返回值

Returns an array containing all the entries from array1 whose keys are not present in any of the other arrays.

范例

Example #2 array_diff_key() example

The two keys from the key => value pairs are considered equal only if (string) $key1 === (string) $key2 . In other words a strict type check is executed so the string representation must be the same.

<?php
$array1 
= array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_diff_key($array1$array2));
?>

以上例程会输出:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

注释

Note:

This function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using array_diff_key($array1[0], $array2[0]);.

参见


数组 函数
PHP Manual