比較兩個(gè)數(shù)組的鍵名和鍵值(使用用戶自定義函數(shù)進(jìn)行比較),并返回差集:
<?php
function myfunction_key($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
function myfunction_value($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");
$result=array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value")
;
print_r($result);
?>
array_udiff_uassoc() 函數(shù)用于比較兩個(gè)(或更多個(gè))數(shù)組的鍵名和鍵值,并返回差集。
注釋:該函數(shù)使用兩個(gè)用戶自定義函數(shù)進(jìn)行比較;第一個(gè)函數(shù)比較鍵名,第二個(gè)函數(shù)比較鍵值!
該函數(shù)比較兩個(gè)(或更多個(gè))數(shù)組的鍵名和鍵值,并返回一個(gè)差集數(shù)組,該數(shù)組包括了所有在被比較的數(shù)組(array1)中,但是不在任何其他參數(shù)數(shù)組(array2 或 array3 等等)中的鍵名和鍵值。
array_udiff_uassoc() 函數(shù)返回 array1 數(shù)組中存在但其它數(shù)組中都不存在的部分。返回的數(shù)組中鍵名保持不變。
注意與 array_diff() 以及 array_udiff() 不同的是鍵名也用于比較。同時(shí)進(jìn)行鍵名和鍵值的比較,如 "a"=>1 和 "b"=>1 這兩個(gè)元素是不相等的。
對(duì)鍵名(索引)的檢查也是由回調(diào)函數(shù) myfunction_key 進(jìn)行的。這和 array_udiff_assoc() 的行為不同,后者是用內(nèi)部函數(shù)比較索引的。
數(shù)組數(shù)據(jù)的比較是使用用戶提供的回調(diào)函數(shù) myfunction_value 進(jìn)行的。在此方面和 array_diff_assoc() 的行為正好相反,后者是用內(nèi)部函數(shù)進(jìn)行比較的。
這兩個(gè)函數(shù)都帶有兩個(gè)將進(jìn)行比較的參數(shù)。如果第一個(gè)參數(shù)小于第二個(gè)參數(shù),則函數(shù)返回一個(gè)負(fù)數(shù),如果兩個(gè)參數(shù)相等,則要返回 0,如果第一個(gè)參數(shù)大于第二個(gè),則返回一個(gè)正數(shù)。
array_udiff_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)
參數(shù) | 描述 |
---|---|
array1 | 必需。與其他數(shù)組進(jìn)行比較的第一個(gè)數(shù)組。 |
array2 | 必需。與第一個(gè)數(shù)組進(jìn)行比較的數(shù)組。 |
array3,... | 可選。與第一個(gè)數(shù)組進(jìn)行比較的其他數(shù)組。 |
myfunction_key |
必需。用于比較數(shù)組鍵名的用戶自定義函數(shù)的名稱。 字符串值,定義可調(diào)用的比較函數(shù)。如果第一個(gè)參數(shù)小于等于或大于第二個(gè)參數(shù),則比較函數(shù)必須返回小于等于或大于 0 的整數(shù)。 |
myfunction_value |
必需。用于比較數(shù)組鍵值的用戶自定義函數(shù)的名稱。 字符串值,定義可調(diào)用的比較函數(shù)。如果第一個(gè)參數(shù)小于等于或大于第二個(gè)參數(shù),則比較函數(shù)必須返回小于等于或大于 0 的整數(shù)。 |
返回值: | 返回差集數(shù)組,該數(shù)組包括了所有在被比較的數(shù)組(array1)中,但是不在任何其他參數(shù)數(shù)組(array2 或 array3 等等)中的鍵名和鍵值。 |
PHP 版本: | 5+ |
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇
Powered by 365建站網(wǎng) RSS地圖 HTML地圖
copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)