array_intersect_uassoc()函数是PHP中的内置函数。它用于通过使用用户定义的比较函数来比较两个或多个数组的键和值,并返回匹配项。
比较函数返回等于或大于零的整数。如果第一个参数被认为分别小于,等于或大于第二个。如果条件为true,则返回TRUE值,否则返回FALSE值。
用法:
array_intersect_uassoc($array1, $array2, $array3..., uassoc_intersectFunction)
使用的参数:此函数接受最少三个参数,所有三个参数都是必需的,其他参数是可选的。参数说明如下:
- $array1(必需):
该数组将与其他数组进行比较。 - $array2(必需):
数组与第一个数组相比。
- $array3…(可选):
数组与第一个数组相比。
- uassoc_intersectFunction(必填):
这是必需的用户定义函数。定义可调用比较函数的字符串。比较函数返回一个小于,等于或大于0的整数。如果第一个参数小于,等于或大于第二个参数。
返回值:
返回一个数组,其中包含来自array1的条目,这些条目存在于所有其他数组中,例如:-( arra2,arra3,arar4….more)。返回值类型是一个数组。
Note: The function uses a user-defined function to compare the keys. (user-define function's functionality is applicable for key not for values of keys)
让我们以一个例子来了解array_intersect_uassoc()函数。
程序:1在此示例中,我们通过使用不区分大小写的strcasecmp函数来比较数组的键。它比较不区分大小写的键。
<?php
$arr1 = array(
"a" => "gfg",
"b" => "GeeksforGeeks",
"c" => "contribute"
);
$arr2 = array(
"a" => "gfg",
"B" => "GeeksforGeeks",
"c" => "ide"
);
$arr3 = array(
"x" => "gfg",
"B" => "GeeksforGeeks",
"c" => "practice"
);
// Compare the keys and values by using a
// user-defined key comparison function.
// Here callback function applicable on keys
echo "Using function: array_uintersect_assoc() \n ";
$result = array_intersect_uassoc($arr1,
$arr2, $arr3, "strcasecmp");
// printing result
print_r($result);
?>
Using function: array_uintersect_assoc() Array ( [b] => GeeksforGeeks )
程序:2取两个数组(array1和array2)并使用用户定义的键比较函数(uassoc_intersectFunction)。仅具有经过数学计算的键和值的函数返回数组。
<?php
// Illusrate array_intersect_uassoc()
// Function in PHP
function uassoc_intersectFunction($arr1, $arr2)
{
if ($arr1 === $arr2) {
return 0;
}
return ($arr1 > $arr2) ? 1 : -1;
}
// Code driven
$arr1 = array(
"0" => "Graph",
"1" => "Dynamic",
"3" => "Recursive",
"4" => "Prime Factor"
);
$arr2 = array(
"4" => "Prime",
"2" => "Factorial",
"3" => "Recursive",
"7" => "Modulo"
);
$result = array_intersect_uassoc($arr1,
$arr2, "uassoc_intersectFunction");
print_r($result);
?>
Array ( [3] => Recursive )
程序:3取三个数组(arr1,arr2和arr3)并使用用户定义的键比较函数(uassoc_intersectFunction)。 User-define函数匹配,因为它是具有相同值的键,但没有找到任何这种情况,则它将返回NULL /空数组(在程序1中,我们使用strcasecmp函数,此函数应用于键,忽略大小写的敏感性,并返回结果GeeksforGeeks。)
<?php
// illusrate array_intersect_uassoc()
// Function in PHP
function uassoc_intersectFunction($arr1, $arr2)
{
if ($arr1 === $arr2) {
return 0;
}
return ($arr1 > $arr2) ? 1 : -1;
}
// Code driven
$arr1 = array(
"a" => "gfg",
"b" => "GeeksforGeeks",
"c" => "contribute"
);
$arr2 = array(
"a" => "gfg",
"B" => "GeeksforGeeks",
"c" => "ide"
);
$arr3 = array(
"a" => "Gfg",
"B" => "GeeksforGeeks",
"c" => "practice"
);
// userdefine function match as it is keys
// with same values but no any such
// case so it will return NULL
$result = array_intersect_uassoc($arr1, $arr2, $arr3, "uassoc_intersectFunction");
print_r($result);
?>
Array ( )
以下是一些相关的数组相交的PHP函数
- PHP | array_intersect()函数: 该函数返回另一个数组,该数组包含在作为参数传递的所有其他数组中存在的第一个数组的元素。如果没有元素匹配,则返回NULL数组。
- PHP | array_intersect_assoc()函数: 函数以与第一个数组相同的索引返回所有其他自变量中存在的第一个数组的所有值,即,键主要用于比较。
- PHP | array_uintersect_assoc()函数:比较数组的键和用户定义的函数以比较值。
- PHP | array_intersect_key()函数:该函数返回另一个数组,该数组包含第一个数组的元素,这些元素存在于作为参数相互匹配的参数传递的其他数组中。如果没有键匹配,则返回NULL数组。
<?php // Program to illustrate==> // array_intersect() function // array_intersect_assoc() function // array_uintersect_assoc() function // array_intersect_uassoc() function $arr1 = array( "a" => "gfg", "b" => "GeeksforGeeks", "c" => "contribute" ); $arr2 = array( "a" => "gfg", "B" => "GeeksforGeeks", "c" => "ide" ); $arr3 = array( "a" => "Gfg", "B" => "GeeksforGeeks", "c" => "practice" ); // The array_intersect() function compares // the values (not keys) of two (or more) // arrays, and returns the matches. echo "**********array_intersect********** \n "; $result = array_intersect($arr1, $arr2, $arr3); print_r($result); // array_intersect_assoc() returns an array // containing all the values of arr1 that // are present in all the arguments. // for above input it will return null echo "******array_intersect_assoc******** \n "; $result = array_intersect_assoc($arr1, $arr2, $arr3); print_r($result); // array_uintersect_assoc compare values (data) // by using call back function echo "*********array_uintersect_assoc********** \n "; $result = array_uintersect_assoc($arr1, $arr2, $arr3, "strcasecmp"); print_r($result); // Compare the keys and values by using // a user-defined key comparison function // here callback function applicable on keys echo "*********array_uintersect_assoc *********\n "; $result = array_intersect_uassoc($arr1, $arr2, $arr3, "strcasecmp"); print_r($result); // compute the intersection of two or more arrays. // function returns another array containing // the elements of the first array that // are present in other arrays echo "*********array_intersect_key *********\n "; $result = array_intersect_key($arr1, $arr2, $arr3); print_r($result); ?>
输出:**********array_intersect********** Array ( [b] => GeeksforGeeks ) ******array_intersect_assoc******** Array ( ) *********array_uintersect_assoc********** Array ( [a] => gfg ) *********array_uintersect_assoc ********* Array ( [b] => GeeksforGeeks ) *********array_intersect_key ********* Array ( [a] => gfg [c] => contribute )
相关用法
- PHP pow( )用法及代码示例
- PHP pi( )用法及代码示例
- PHP Ds\Map get()用法及代码示例
- PHP each()用法及代码示例
- PHP Ds\Set xor()用法及代码示例
- PHP next()用法及代码示例
- PHP tan( )用法及代码示例
- PHP cos( )用法及代码示例
- PHP sin( )用法及代码示例
- PHP abs()用法及代码示例
- PHP Ds\Set get()用法及代码示例
- PHP each()用法及代码示例
- PHP Ds\Set sum()用法及代码示例
注:本文由纯净天空筛选整理自jit_t大神的英文原创作品 PHP | array_intersect_uassoc() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。