English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
array_diff_uassoc()函数比较两个(或多个)数组的键和值,并返回一个包含array1中的条目的数组,这些条目在任何其他具有相同值的数组中都不存在。
此函数不同于array_diff(),因为array_diff()比较值,而此函数比较其他数组中的键及其值。
此函数与array_diff_assoc()不同,因为array_diff_assoc()使用内部算法比较键及其值,而此函数使用用户定义的函数比较键及其值。
array_diff_uassoc( $array1, $array2 , $array3..., callback $key_compare_func] );
Nummer | Parameter und Beschreibung |
---|---|
1 | array1(Notwendig) Zu vergleichendes Array |
2 | array2(Notwendig) Dies ist das Array, das mit dem ersten Array verglichen werden soll |
3 | array3(Optional) Mit dem ersten Array verglichene Array |
4 | key_compare_func(Notwendig) Wenn die Vergleichsfunktion kleiner, gleich oder größer als der zweite Parameter zurückzugeben ist, muss die Vergleichsfunktion entsprechend eine negative, Null oder positive Ganzzahl zurückgeben. |
Diese Funktion gibt ein Array zurück, das enthält array1alle Einträge enthalten, aber nicht in anderen Arrays vorhanden.
Diese Funktion wurde ursprünglich in der PHP-Version5.0.0 eingeführt wird.
Probieren Sie den folgenden Beispiel. Hier, wenn $input1Schlüssel entsprechen jeder anderen Eingabearray, gibt die Schlüsselvergleichsfunktion 0 zurück; Wenn größer, wird zurückgegeben1; Wenn kleiner, wird zurückgegeben -1。
Wenn der definierte Vergleichsfunktion für die Schlüssel verwendet wird, sind die Schlüssel "a" tatsächlich in beiden Arrays vorhanden, daher erscheint er nicht in der Ausgabe. Der nächste Schlüssel "b" und "c" sind nicht im zweiten Array vorhanden, daher werden sie in die Ausgabe aufgenommen. Der andere 0 => "red" erscheint in der Ausgabe, weil der Schlüssel in dem zweiten Parameter "red" ist1:
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b)? 1: -1; } $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $input2 = array("a" => "green", "yellow", "red"); $result = array_diff_uassoc($input1, $input2, "key_compare_func"); print_r($result); ?>Testen sehen‹/›
Ausgabeergebnis:
Array ( [b] => brown [c] => blue [0] => red )
Probieren Sie den folgenden Beispiel. In diesem Fall wird "red" nicht in der Ausgabe erscheinen, weil beide Schlüssel jetzt 0 sind.
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b)? 1: -1; } $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $input2 = array("a" => "green", "c" => "yellow", "red"); $result = array_diff_uassoc($input1, $input2, "key_compare_func"); print_r($result); ?>Testen sehen‹/›
Ausgabeergebnis:
Array ( [b] => brown [c] => blue )