首页 > 编程 > PHP > 正文

PHP编程讲解array_udiff函数

2020-03-22 19:02:34
字体:
来源:转载
供稿:网友
  • 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"));?>

    输出: Array ( [c] => Horse )
    www.it165.net

    例 2. array_udiff() 例子
    <?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))

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

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表