PHP 数组函数

PHP array_intersect_uassoc()函数 用于获取二个数组或者多个数组的交集,计算交集的条件是使用用户自定义函数(回调函数)比较键名和键值。

语法

array_intersect_uassoc(array1,array2,array3...,myfunction) 

    参数

    参数说明可选/必须
    array1要计算的第一个数组必须
    array2要计算的第二个数组
    必须
    array3要计算的第三个数组
    可选
    myfunction
    比较键名和键值的自定义函数。如果第一个参数小于、等于或大于第二个参数,则该比较函数必须返回小于、等于或大于 0 的整数。必须

    返回值

    返回多个数组的交集

    注意

    • 计算交集的条件是使用自定义函数的方式比较数组的键名和键值。

    例子

    介绍一些例子,了解PHP array_intersect_uassoc() 函数的用法。

    例1  

    <?php
    function myfunc($k1,$k2){
      if ($k1===$k2)
      {
      return 0;
      }
      return ($k1>$k2)?1:-1;
    }
    $color1 = array("c"=>"yellow","b"=>"green","a"=>"red");
    $color2 = array("d"=>"white","b"=>"green","f"=>"black");
    
    $result = array_intersect_uassoc($color1, $color2,'myfunc');
    var_dump($result);
    
    ?> 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    输出:

    array(1) {
      ["b"]=>
      string(5) "green"
    }

    其中只有b=>green是键名和键值都相等的元素。

    例2

    再看一个自定义函数在类中方法的例子:

    <?php
    class MyArrayClass{
    	function myfunc($k1,$k2){
    	  if ($k1===$k2)
    	  {
    	  return 0;
    	  }
    	  return ($k1>$k2)?1:-1;
    	}
    }
    
    $obj = new MyArrayClass();
    
    $color1 = array("c"=>"yellow","b"=>"green","a"=>"red");
    $color2 = array("d"=>"white","b"=>"green","f"=>"black");
    
    $result = array_intersect_uassoc($color1, $color2,array($obj,'myfunc'));
    var_dump($result);
    
    ?> 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    输出
    array(1) { ["b"]=> string(5) "green" }