PHP array_diff_uassoc() Funktion
Beispiel
Vergleiche die Schlüsselnamen und -werte zwei Arrays (verwende eine benutzerdefinierte Funktion, um die Schlüsselnamen zu vergleichen) und gibt das Unterschiedsset zurück:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"rot","b"=>"grün","c"=>"blau"); $a2=array("d"=>"red","b"=>"green","e"=>"blue"); $result=array_diff_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
Definition und Verwendung
Die Funktion array_diff_uassoc() wird verwendet, um die Schlüsselnamen und -werte zwei (oder mehrerer) Arrays zu vergleichen und einen Unterschiedsset zurückzugeben.
Anmerkung:Diese Funktion verwendet eine benutzerdefinierte Funktion, um die Schlüsselnamen zu vergleichen!
Diese Funktion vergleicht die Schlüsselnamen und -werte zweier (oder mehrerer) Arrays und gibt ein Unterschiedsarray zurück, das alle Elemente enthält, die inarray1enthalten, aber nicht in einem anderen Parameterarray (array2 oder array3 und so weiter) Schlüsselnamen und -werte.
Syntax
array_diff_uassoc(array1,array2,array3,...myfunction);
Parameter | Beschreibung |
---|---|
array1 | Notwendig. Das erste Array, das mit den anderen Arrays verglichen wird. |
array2 | Notwendig. Das Array, das mit dem ersten Array verglichen wird. |
array3,... | Optional. Weitere Arrays, die mit dem ersten Array verglichen werden sollen. |
myfunction | Notwendig. Eine Zeichenkette, die die Vergleichsfunktion definiert, die aufgerufen wird. Wenn der erste Parameter kleiner, gleich oder größer als der zweite Parameter ist, muss die Vergleichsfunktion einen kleineren, gleichgroßen oder größeren Integer als 0 zurückgeben. |
Erklärung
Die Funktion array_diff_uassoc() verwendet einen benutzerdefinierten Callback-Funktion (callback) zur Index-Prüfung, um den Unterschied zwischen zwei oder mehreren Arrays zu berechnen. Sie gibt ein Array zurück, das alle Elemente enthält, die in array1 enthalten, aber nicht in einem anderen Parameterarray enthalten.}
Beachten Sie, dass im Gegensatz zur Funktion array_diff() auch die Schlüsselnamen verglichen werden.
Der Parameter myfunction ist eine benutzerdefinierte Funktion, die zur Vergleich von zwei Arrays verwendet wird. Diese Funktion muss zwei Parameter haben - d.h. die beiden Schlüsselnamen, die verglichen werden sollen. Daher ist das Verhalten genau umgekehrt im Vergleich zur Funktion array_diff_assoc(), die internen Funktionen verwendet.
Die Schlüsselnamen in den zurückgegebenen Arrays bleiben unverändert.
Technische Details
Rückgabewert: | gibt das Unterschiedsset-Array zurück, das alle Werte enthält, die in den verglichenen Arrays (array1enthalten, aber nicht in einem anderen Parameterarray (array2 oder array3 und so weiter) Schlüsselnamen und -werte. |
PHP-Version: | 5+ |
Mehr Beispiele
Beispiel 1
Vergleichen Sie die Schlüsselnamen und -werte dreier Arrays (verwenden Sie eine benutzerdefinierte Funktion, um die Schlüsselnamen zu vergleichen) und geben Sie das Unterschiedsset zurück:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"rot","b"=>"grün","c"=>"blau"); $a2=array("a"=>"rot","b"=>"grün","d"=>"blau"); $a3=array("e"=>"gelb","a"=>"rot","d"=>"blau"); $result=array_diff_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>