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"
}
["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" }