当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP array_udiff_assoc()用法及代码示例


array_udiff_assoc()是PHP中的内置函数,用于区分两个或多个数组。该函数通过使用带有附加键和返回差的用户定义函数来从两个或多个数组计算差数组。它返回第一个数组中存在的所有其他条目中不存在的所有条目。它不同于array_diff_assoc()函数,因为它允许用户定义的函数来确定标准。

用法:
array_udiff_assoc($array1,$array2,$array3……….array nth,arr_udiffassocFun)

使用的参数:该array_udiff_assoc()函数参数如下所述:


  1. array1 :它是初始数组,并与另一个数组进行比较。这是强制性的。
  2. array2 :数组与第一个数组键相比。这是强制性的。
  3. array3 :第二个数组与第一个数组键相比。它是可选的。
  4. arr_udiffassocFun:它是必需的用户定义函数和一个用于定义用户定义的回调函数的字符串,如果第一个参数比第二个参数大,它将返回一个大于0的整数。

返回值
返回一个数组,其中包含第一个数组中所有其他数组中都不存在的元素。如果存在所有数组元素,则数组返回NULL。

注意:该内置函数array_udiff_assoc()用于比较数组的键,而用户定义函数用于比较值。该函数仅检查n-dimensional数组的一维。

范例1:


Input :
 $arr1 = array(
    "a" => "Geeks",
    "b" => "for",
    "d" => "geeks"
);
$arr2 = array(
    "a" => "Geeks",
    "y" => "is",
    "d" => "geeks"
);
Output:
Array
(
    [b] => for
)
Explanation: arr1 contains only one 
values(for) which is not present in 
arr2.

范例2:

Input:
$arr1 = array(
    "a" => "C",
    "b" => "C++",
    "d" => "Java",
    "x" => "XML",
    "y" => "C#"
);
$arr2 = array(
    "a" => "C",
    "b" => "C++",
    "d" => "PHP",
    "x" => "Advanced PHP",
    "n" => "XML"    
);
Output:
Array
(
    [d] => Java
    [x] => XML
    [y] => C#
)

Explanation: arr1  return three values
(article) which are not present in arr2.
But XML is present both arr1 and arr2 
but both have different key.

让我们以一个简单的示例来了解array_udiff_assoc()函数。

程序1:取两个数组(array1和array2)并使用用户定义的键比较函数(arr_udiffassocFun)。

<?php 
<?php 
// PHP code for array_uintersect_assoc function. 
  
// This function is used to decide which elements 
// to pick array_udiff_assoc 
function arr_udiffassocFun($x, $y) 
{        
    return ($x === $y)? 0 : 1; 
} 
  
// array list for comparison. 
$arr1 = array( 
    "a" => "Raj", 
    "b" => "Ram", 
    "d" => "Denish", 
    "r" => "David"
); 
$arr2 = array( 
    "a" => "Raj", 
    "y" => "Ram", 
    "d" => "Denish", 
    "x" => "Ritche"
); 
  
// Driver code 
$result = array_udiff_assoc($arr1, 
             $arr2, "arr_udiffassocFun"); 
print_r($result); 
?>
输出:
Array
(
    [b] => Ram
    [r] => David
)

注意:[b] =>因为键不同,所以打印了Ram。在array_diff_assoc()和array_udiff_assoc()中,将比较键和值。 array_diff()仅比较值。

程序:2接受四个数组(array1,array2,array3和array4),并使用用户定义的键比较函数array_udiff_assoc()。

<?php 
// PHP code for array_uintersect_assoc function 
// This function is used to decide which elements 
// to pick array_udiff_assoc 
function arr_udiffassocFun($x, $y) 
{        
    return ($x === $y)? 0 : 1; 
} 
  
// array list for comparison. 
$arr1 = array( 
    "a" => "Larry", 
    "b" => "Page", 
    "d" => "Denish", 
    "r" => "Ritche"
); 
$arr2 = array( 
    "a" => "Larry", 
    "y" => "Page", 
    "d" => "Denish", 
    "r" => "Ritche"
); 
$arr3 = array( 
    "a" => "larry", 
    "y" => "Bill Gate", 
    "d" => "Denish", 
    "r" => "Willion"
); 
$arr4 = array( 
    "a" => "Raj", 
    "y" => "Bill Gate", 
    "d" => "Denish", 
    "r" => "Woks"
); 
$result = array_udiff_assoc($arr1, 
   $arr2, $arr3, $arr4, "arr_udiffassocFun"); 
// print result. 
print_r($result); 
?>
输出:
Array
(
    [b] => Page
)

相关文章:

参考:http://php.net/manual/zh/function.array-udiff-assoc.php



相关用法


注:本文由纯净天空筛选整理自jit_t大神的英文原创作品 PHP | array_udiff_assoc() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。