PHP | array_udiff_assoc()函数

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

null

语法:

array_udiff_assoc($array1,$array2,$array3…………array n,arr_udiffassocFun)

使用的参数: 该数组的函数参数如下所述:

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

返回值 :返回一个数组,该数组包含第一个数组的元素,而这些元素在所有其他数组中都不存在。如果存在所有数组元素,则数组返回NULL。 注: 此内置函数array_udiff_assoc())用于比较数组的键,而用户定义函数用于比较值。该函数只检查n维数组的一维。

例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_udiff_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。在里面 数组_diff_assoc() 和array_udiff_assoc(),比较键和值。 数组_diff() 只比较值。

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

<?php
// PHP code for array_udiff_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
)

相关文章:

在以下方面练习类似的问题: PHP 参考资料: http://php.net/manual/en/function.array-udiff-assoc.php

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享