一梦千年系列

带索引检查数组的差集

  1. 说明
  1. array_diff_assoc(array $array1, array $array2, ...) : array

返回一个数组,array1中有,而array2中没有的元素

  1. 参数

array1需要得出差集的数组

array2被比较的数组

...更多被比较的数组

  1. 返回值

返回一个数组,在array1中,但是不在array2以及后面数组中

  1. 范例
  1. $array1 = [1, 2, 3];
  2. $array2 = [2, 3, 1];
  3. $newArray = array_diff_assoc($array1, $array2);
  4. print_r($newArray);

以上范例会输出

  1. Array
  2. (
  3. [0] => 1
  4. [1] => 2
  5. [2] => 3
  6. )
  1. 特别注意

需要注意的是这个函数计算差集的时候需要把键名算进去,一起比较

一梦千年系列

使用键名比较差集

  1. 说明
  1. array_diff_key(arrar $array1, array $array2, ...) : array

返回一个数组,键名存在于array1中,但是不存在于array2中

  1. 参数

array1用于比较的数组

array2被比较的数组

...更多被比较的数组

  1. 返回值

返回一个数组,键名存在于array1中,但不存在于其它数组中

  1. 范例
  1. $array1 = [1, 2, 3, 4];
  2. $array2 = [2, 3, 1];
  3. $newArray = array_diff_key($array1, $array2);
  4. print_r($newArray);

以上范例输出

  1. Array
  2. (
  3. [3] => 4
  4. )
  1. 特别说明

注意是只比较键名

一梦千年系列

使用用户自定义函数检查索引是否相同,从而计算差集

  1. 说明
  1. array_diff_uassoc(array $array1, array $array2, ..., callable $func) : array
  1. 参数

array1用于比较的数组

array2被比较的数组

...更多被比较的数组

func用户自定义计算索引是否相同的函数

  1. 返回值

返回一个数组,使用自定义函数检查键名是否相同,从而计算差集

  1. 范例
  1. $array1 = ['name' => 'swk'];
  2. $array2 = ['nickname' => 'swk'];
  3. function func($a, $b)
  4. {
  5. return 0; // 返回0或者不返回表示相同,其它的表示不相同
  6. }
  7. $newArray = array_diff_uassoc($array1, $array2, 'func');
  8. print_r($newArray);
  1. 特别说明

用户自定义函数只是用于比较键名的,键值还是真实比较的

一梦千年系列

使用自定义函数检查键名是否相同,从而计算差集,只比较键名,不比较键值

  1. 说明
  1. array_diff_ukey(array $array1, array $array2, ..., callable $func) : array

返回一个数组,使用用户自定义函数检查不相同的键名

  1. 参数

array1用户比较打的数组

array2被比较的数组

...更多被比较的数组

func用户自定义函数,用于比较键名是否相同

  1. 返回值

返回一个数组,使用自定义函数检查不相同的键名

  1. 范例
  1. $array1 = ['name' => 'swk', 'age' => 20];
  2. $array2 = ['name' => 'swk'];
  3. function func($a, $b)
  4. {
  5. return 0; // 返回0或者不返回表示相同,其它的表示不相同
  6. }
  7. $newArray = array_diff_ukey($array1, $array2, 'func');
  8. print_r($newArray);

以上范例输出

  1. Array
  2. (
  3. )
  1. 特别说明

使用用户自定义函数只比较键名

一梦千年系列

计算数组的差集,只比较键值

  1. 说明
  1. array_diff(array $array1, array $array2, ...) : array

返回一个数组,存在于array1中,不存在于其它数组中

  1. 参数

array1用于比较的数组

arrray2被比较的数组

...更多被比较的数组

  1. 返回值

返回一个数组,存在于array1中,不存在其它数组中,只比较键值

  1. 范例
  1. $array1 = [1, 2, 3];
  2. $array2 = [2, 3, 1];
  3. $newArray = array_diff($array1, $array2);
  4. print_r($newArray);

以上范例输出

  1. Array
  2. (
  3. )
  1. 特别说明

只比较键值

版权声明:本文为leruge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/leruge/p/15107938.html