PHP array_diff_ukey() -funktionen
Exempel
Jämför nyckelnamnen i två arrayer (använder en användardefinierad funktion för att jämföra nyckelnamn) och returnera differensmängden:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"blue","b"=>"black","e"=>"blue"); $result=array_diff_ukey($a1,$a2,"myfunction"); print_r($result); ?>
Definition och användning
array_diff_ukey() -funktionen används för att jämföra nyckelnamn i två (eller fler) arrayer och returnera differensmängden.
Kommentar:Funktionen använder en användardefinierad funktion för att jämföra nyckelnamn!
Funktionen jämför nyckelnamnen i två (eller fler) arrayer och returnerar en differensmängd som inkluderar alla nyckelnamn i de jämförda arrayerna (array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名。
Syntax
array_diff_ukey(array1,array2,array3...,myfunction);
Parameter | Beskrivning |
---|---|
array1 | Obligatorisk. Den första arrayen att jämföra med andra arrayer. |
array2 | Obligatorisk. Array att jämföra med den första arrayen. |
array3,... | Valfritt. Andra arrayer att jämföra med den första arrayen. |
myfunction | Obligatorisk. En sträng som definierar en kallbar jämförelsefunktion. Om den första parametern är mindre än, lika med eller större än den andra parametern, måste den jämförelsefunktion som returneras vara ett heltal mindre än, lika med eller större än 0. |
说明
array_diff_ukey() 返回一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。与 array_diff() 不同的是,比较是根据键名而不是值来进行的。
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
技术细节
返回值: | 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名。 |
PHP 版本: | 5.1+ |
更多实例
例子 1
比较三个数组的键名(使用用户自定义函数比较键名),并返回差集:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"black","b"=>"yellow","d"=>"brown"); $a3=array("e"=>"purple","f"=>"white","a"=>"gold"); $result=array_diff_ukey($a1,$a2,$a3,"myfunction"); print_r($result); ?>