PHP 数组函数

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

语法

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

参数

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

返回值

返回多个数组的交集

注意

  • 计算交集的条件是使用自定义函数的方式比较数组的键。
  • 返回值的value值以第一个数组的value值为准。

例子

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

例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"=>"pink","f"=>"black");

$result = array_intersect_ukey($color1, $color2,'myfunc');
var_dump($result);

?>  
输出:
array(1) {
  ["b"]=>
  string(5) "green"
}

其中返回值的value值为green,它是第一个数组$color1的value值。

例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"=>"pink","f"=>"black");

$result = array_intersect_ukey($color1, $color2,array($obj,'myfunc'));
var_dump($result);

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