PHP 数组函数

array_uintersect_uassoc( )是 PHP 的内置函数。 array_uintersect_uassoc() 函数使用两个用户定义的函数来比较两个或多个数组的键和值,并返回匹配项。此函数是在 PHP 5.0 中引入的。

语法

array array_uintersect_uassoc ( array $array1 , array $array2 [, array $... ], callable$value_compare_func , callable $key_compare_func ); 

参数

参数描述必须/可选
array1要比较的数组1。必须
array2要比较的数组2。必须
array3要比较的数组n或更多。可选
value_compare_func用于比较值的用户定义函数。必须
Key_comapre_function用于比较键的用户定义函数。必须

返回值

array_uintersect_uassoc( ) 函数返回一个数组,其中包含 array1 中所有参数中存在的条目。

重要提示

如果第一个参数是 <、= 或 > 而不是第二个参数,则 function_key 和 function_value 必须返回一个小于 0 的整数 <、= 或 >。

例子1

<?php
function keyfunction($u,$v)
{
    if ($u===$v)
    {		
        return 0;
    }
    return ($u>$v)?1:-1;
}
function valuefunction($u,$v)
{
    if ($u===$v)
    {
        return 0;
    }
    return ($u>$v)?1:-1;
}
$a1=array("a"=>"Apple","b"=>"Ball","c"=>"Cat");
$a2=array("a"=>"Apple","b"=>"Ball","c"=>"yxjc123");
$result=array_uintersect_uassoc($a1,$a2,"keyfunction","valuefunction");
print_r($result);
?> 

输出:

Array ( [a] => Apple [b] => Ball )

例子2

<?php
function userkey($a,$b)
{
        if ($a===$b)
	{
		return 0;
	}
	return ($a>$b)?1:-1;
}

function uservalue($a,$b)
{
        if ($a===$b)
	{
		return 0;
	}
	return ($a>$b)?1:-1;
}
$a1=array("a"=>"PHP","b"=>"JAVA","c"=>"bluej");
$a2=array("a"=>"PHP","b"=>"JAVA","c"=>"JAVA");
$result=array_uintersect_uassoc($a1,$a2,"userkey","uservalue");
print_r($result);
?> 

输出:

Array ( [a] => PHP [b] => JAVA )

例子3

<?php
function  mykey($a, $b)
{
	if ($a == $b)
		return 0;
        return ($a > $b) ? 1 : -1;
}

function myvalue($a, $b)
{
	if ($a == $b)
		return 0;
        return ($a > $b) ? 1 : -1;
}
$arr1=array("1"=>"java","2"=>"yxjc123","3"=>"PHP");
$arr2=array("1"=>"java","2"=>"inheritance","3"=>"PHP");
$res = array_uintersect_uassoc($arr1, $arr2, "mykey", "myvalue");
print_r($res);
?> 

输出:

Array
(
[1] => java
[3] => PHP
)

例子4

<?php
$arr1 = array("a" => "java", "b" => "php", "c" => "pearl", "swift");
$arr2 = array("a" => "JAVA", "B" => "php", "python", "swift");
print_r(array_uintersect_uassoc($arr1, $arr2, "strcasecmp", "strcasecmp"));
?> 

输出:

Array
(
[a] => java
[b] =>php
)