每日分享PHP知识点,大家都赞同关注是一种动力,分享是一种美德,再说了关注分享一下又不会怀孕?只要你开心就好......
array_udiff_assoc () 带索引检查计算数组的差集,用回调函数比较数据。
arrayarray_udiff_assoc(array$array1,array$array2[,array$...],callable$data_compare_func)
说明:
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
参数描述
array1
第一个数组。
array2
第二个数组。
data_compare_func
在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
返回值:
array_udiff_assoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 与 array_udiff() 不同的是键名也用于比较。数组数据的比较是用用户提供的回调函数进行的。在此方面和 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。
实例:
classcr{
private$priv_member;
functioncr($val)
{
$this->priv_member=$val;
}
staticfunctioncomp_func_cr($a,$b)
{
if($a->priv_member===$b->priv_member)return;
return($a->priv_member>$b->priv_member)?1:-1;
}
}
$a=array("0.1"=>newcr(9),"0.5"=>newcr(12),=>newcr(23),1=>newcr(4),2=>newcr(-15),);
$b=array("0.2"=>newcr(9),"0.5"=>newcr(22),=>newcr(3),1=>newcr(4),2=>newcr(-15),);
$result=array_udiff_assoc($a,$b,array("cr","comp_func_cr"));
print_r($result);
?>
输出:
Array(
[0.1]=>cr Object (
[priv_member:private]=>9
)
[0.5]=>cr Object (
[priv_member:private]=>12
)
[]=>cr Object (
[priv_member:private]=>23
)
)
关注是一种动力 分享是一种美德 关注分享一下又不会怀孕!
领取专属 10元无门槛券
私享最新 技术干货