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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。