PHP 数组函数

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 )