array_diff_uassoc
(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
Beschreibung
Vergleicht array
mit arrays
und gibt den Unterschied zurück. Im Gegensatz zu
array_diff() werden die Arrays anhand ihrer Schlüssel
verglichen.
Im Gegensatz zu array_diff_assoc() wird für den Vergleich der Indizes keine interne Funktion verwendet, sondern eine benutzerdefinierte Callback-Funktion.
Parameter-Liste
-
array
-
Das Array für den Vergleich.
-
arrays
-
Die Arrays, die damit verglichen werden.
-
key_compare_func
-
Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.
Rückgabewerte
Gibt ein Array zurück, welches alle Werte aus
array
enthält, die in keinem der anderen Arrays
enthalten sind.
Beispiele
Beispiel #1 array_diff_uassoc()-Beispiel
Das "a" => "gruen"
-Paar ist in beiden Arrays
enthalten und daher nicht in der Ausgabe der Funktion. Im Gegensatz dazu
ist das Paar 0 => "rot"
in der Ausgabe, weil
"rot"
im zweiten Argument 1
als
Schlüssel hat.
<?php
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$array1 = array("a" => "gruen", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "gruen", "gelb", "rot");
$ergebnis = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($ergebnis);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( [b] => braun [c] => blau [0] => rot )
Die Gleichheit von zwei Indizes wird durch die benutzerdefinierte Callback-Funktion überprüft.
Anmerkungen
Hinweis:
Diese Funktion prüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich können tiefere Ebenen überprüft werden, indem zum Beispiel
array_diff_uassoc($array1[0], $array2[0], "key_compare_func");
verwendet wird.
Siehe auch
- array_diff() - Ermittelt die Unterschiede zwischen Arrays
- array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
- array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
- array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
- array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
- array_intersect() - Ermittelt die Schnittmenge von Arrays
- array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung
- array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
- array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
- array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen