PHP array_diff_uassoc()
函数是 PHP 内置函数,并在 PHP 5 中引入。
函数 array_diff_uassoc() 用于通过用户自定义函数比较多个数组的差异。
简单来说,该函数将 array1 与 array2 进行比较并返回差值。
语法
array_diff_uassoc(array1,array2,array3...,user defined function);
参数 | 描述 | 必须/可选 |
---|---|---|
array1 | 要比较的数组1 | 必须 |
array2 | 要比较的数组2 | 必须 |
array3 | 要比较的更多数组.. | 可选 |
user_defined_function | 指定的回调函数。该函数返回一个小于、等于或大于零的整数。 | 必须 |
重要说明:此函数使用用户定义的函数来比较键。
返回类型
此函数返回一个数组,其中在第一个数组存在,其它数组不存在的元素。
例子1
<?php
function user_function($a1, $b1)
{
if ($a1===$b1)
{
return 0;
}
return ($a1>$b1)? 1: -1;
}
$name1=array(10=>"sid", 20=>"raj", 30=>"phptpoint");
$name2=array(20=>"sid", 10=>"raj", 30=>"phptpoint");
$comp = array_diff_uassoc($name1, $name2, "user_function");
print_r($comp);
?>
输出:
Array( [10] => sid [20] => raj )
例子2
<?php
function myfunction($a1,$b1)
{
if ($a1===$b1)
{
return 0;
}
return ($a1>$b1)?1:-1;
}
$color1=array("a" => "green", "b" => "brown", "c" => "blue", "red");
$color2=array("a" => "green", "yellow", "red");
$comp=array_diff_uassoc($color1,$color2,"myfunction");
print_r($comp);
?>
输出:
Array ( [b] => brown [c] => blue [0] => red )
例子3
<?php
function comparefunction($c, $d)
{
if ($c === $d)
{
return 0;
}
return ($c > $d)? 1:-1;
}
$a1=array("a"=>"pink","b"=>"green","c"=>"orange");
$a2=array("a"=>"pink","b"=>"green","d"=>"orange");
$a3=array("e"=>"red","a"=>"pink","d"=>"orange");
$result=array_diff_uassoc($a1,$a2,$a3,"comparefunction");
print_r($result);
?>
输出:
Array ( [c] => orange )
例子4
<?php
function key_compare_func($a, $b)
{
if ($a === $b)
{
return 0;
}
return ($a > $b)? 1:-1;
}
$input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$input2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($input1, $input2, "key_compare_func");
print_r($result);
?>
输出:
Array ( [b] => brown [c] => blue [0] => red )