PHP array_diff_uassoc()
定义和用法
array_diff_uassoc() 函数使用用户自定义的回调函数 (callback) 做索引检查来计算两个或多个数组的差集。返回一个数组,该数组包括了在 array1 中但是不在任何其他参数数组中的值。
注意,与 array_diff() 函数 不同的是,键名也要进行比较。
参数 function 是用户自定义的用来比较两个数组的函数,该函数必须带有两个参数 - 即两个要进行对比的键名。因此与函数 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。
返回的数组中键名保持不变。
自定义函数只为取得想要的结果数组。
语法
array_diff_uassoc(array1,array2,array3...,function)
参数 | 描述 |
array1 | 必需。与其他数组进行比较的第一个数组。 |
array2 | 必需。与第一个数组进行比较的数组。 |
array3 | 可选。与第一个数组进行比较的数组。可以有多个。 |
function | 必需。用户自定义函数的名称。 |
例子 1
<?php function myfunction($v1,$v2) { if($v1===$v2){ return 0; }if($v1>$v2){ return 1; }else{ return -1; } } $a1 = array(0=>"Dog",1=>"Cat",2=>"Horse"); $a2 = array(3=>"Dog",1=>"Cat",5=>"Horse"); print_r(array_diff_uassoc($a1,$a2,"myfunction")); ?>
输出:
Array ( [0] => Dog [2] => Horse )
例子 2
如何为该函数分配多个数组:
<?php function myfunction($v1,$v2){ if($v1===$v2){ return 0; } if($v1>$v2){ return 1; }else{ return -1; } } $a1 = array(0=>"Dog",1=>"Cat",2=>"Horse"); $a2 = array(3=>"Dog",1=>"Cat",5=>"Horse"); $a3 = array(6=>"Bird",0=>"Dog",5=>"Horse"); print_r(array_diff_uassoc($a1,$a2,$a3,"myfunction")); ?>
输出:
Array ( [2] => Horse )