array_udiff() 函数返回一个数组,该数组包括了所有在被比较数组中,但是不在任何其它参数数组中的值,键名保留不变。
语法
array_udiff(array1,array2,array3...,function)
参数 描述
array1 必需。被比较的数组。
array2 必需。用来做比较的数组。
array3 可选。用来做比较的数组,可有多个。
function 可选。自定义的比较回调函数。
数据的比较是用 function 进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。这和 array_diff() 不同,后者使用了内部函数来比较数据。
注意键名保持不变。
注释:该函数只进行键值的比较,不比较键名。如 “a”=>1 和 “b”=>1 这两个元素视作相等的。
注释:array_udiff() 函数仅检查多维数组中的一维。
例 1. array_udiff() 例子
<?phpfunction myfunction($v1,$v2){if ($v1===$v2){return 0;}return 1;}$a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");$a2=array(1=>"Cat",2=>"Dog",3=>"Fish");print_r(array_udiff($a1,$a2,"myfunction"));?>
<?phphtml' target='_blank'>class cr {private $priv_member;function cr($val){$this->priv_member = $val;}function comp_func_cr($a, $b){if ($a->priv_member === $b->priv_member) return 0;return ($a->priv_member > $b->priv_member)? 1:-1;}}$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);$result = array_udiff($a, $b, array("cr", "comp_func_cr"));print_r($result);?>
Array([0.5] => cr Object([priv_member:private] => 12)[0] => cr Object([priv_member:private] => 23))
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答