Function.array-diff-uassoc
Aus PHP-Wiki
array_diff_uassoc — Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Funktion vorgenommen wird
Beschreibung
array array_diff_uassoc ( array $array1 , array $array2 [, array $... ],callback $key_compare_func )
array_diff_uassoc() gibt ein array zurück,
welches alle Werte aus array1
enthält, die in keinem
der anderen Argumente enthalten sind. Beachten Sie, dass die Schlüssel anders
als von array_diff() in den Vergleich einbezogen werden.
Dieser Vergleich wird von einer benutzerdefinierten Callbackfunktion
durchgeführt. Diese muss einen Integer kleiner als, genau gleich oder
größer als Null zurückgeben, wenn das erste Argument entsprechend als
kleiner, gleich oder größer als das Zweite betrachtet wird. Dies ist anders
als array_diff_assoc(), in der eine eingebaute Funktion
für den Vergleich der Indizes verwendet wird.
Beispiel #1 array_diff_uassoc() Beispiel
<?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");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:
Array
(
[b] => braun
[c] => blau
[0] => rot
)
In unserem obigen Beispiel sieht man dass das
"a" => "gruen" Paar in beiden Arrays enthalten ist
und daher nicht in der Ausgabe der Funktion auftaucht. Andererseits ist das
Paar 0 => "rot" in der Ausgabe, weil
"red" im zweiten Argument einen Schlüsselwert von
1 enthält.
Die Gleichheit von zwei Indizes wird von einer benutzerdefinierten
Callbackfunktion überprüft.
Hinweis:
Bitte beachten Sie, dass diese Funktion nur eine Dimension eines
n-dimensionalen Arrays prüft. Natürlich kann man tiefere Dimensionen
überprüfen, indem man zum Beispiel
array_diff_uassoc($array1[0], $array2[0], "key_compare_func");
verwendet.
Siehe auch
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() und
array_uintersect_uassoc().