PHP array_diff_uassoc() funktion
Exempel
Jämför nyckelnamn och nyckelvärden i två arrayer (använder en användardefinierad funktion för att jämföra nyckelnamn) och returnera skillnadsarray:
<?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("d"=>"red","b"=>"green","e"=>"blue"); $result=array_diff_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
Definition och användning
array_diff_uassoc() funktionen används för att jämföra nyckelnamn och nyckelvärden i två (eller fler) arrayer och returnera skillnadsarray.
Kommentar:Funktionen använder en användardefinierad funktion för att jämföra nyckelnamn!
Funktionen jämför nyckelnamn och nyckelvärden i två (eller fler) arrayer och returnerar en skillnadsarray som inkluderar alla element i de jämförda arrayerna (array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
syntax
array_diff_uassoc(array1,array2,array3,...myfunction);
parametrar | 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. Definiera en sträng som kan anropas som en jämförelsefunktion. Om den första parameteren är mindre än, lika med eller större än den andra parameteren, måste den jämförelsefunktion som returnerar ett heltal mindre än, lika med eller större än 0. |
beskrivning
array_diff_uassoc() funktionen använder en användardefinierad callback-funktion (callback) för att göra indexkontroll för att beräkna skillnaden mellan två eller flera arrayer. Returnerar en array som inkluderar de array1 中但是不在任何其他参数数组中的值。
注意,与 array_diff() 函数 不同的是,键名也要进行比较。
参数 myfunction 是用户自定义的用来比较两个数组的函数,该函数必须带有两个参数 - 即两个要进行对比的键名。因此与函数 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。
返回的数组中键名保持不变。
技术细节
返回值: | 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。 |
PHP 版本: | 5+ |
更多实例
例子 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"=>"red","b"=>"green","d"=>"blue"); $a3=array("e"=>"yellow","a"=>"red","d"=>"blue"); $result=array_diff_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>