Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird

# 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

function array_diff_uassoc(array `$array`, array `...$arrays`, callable `$key_compare_func`): array

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.

  function callback(mixed `$a`, mixed `$b`): int
  Achtung

  Wenn die Vergleichsfunktion nicht-ganzzahlige Werte zurückgibt, z. B. vom Typ float, wird der Rückgabewert des Callbacks intern in den Typ int umgewandelt. Werte wie `0.99` und `0.1` werden also beide in einen Integer-Wert von `0` umgewandelt, wodurch diese Werte als gleichwertig eingestuft werden.

### 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

In diesem Beispiel ist das `"a" => "gruen"`-Paar in beiden Arrays enthalten und taucht daher nicht in der Ausgabe der Funktion auf. Andererseits ist das Paar `0 => "rot"` in der Ausgabe, weil dem Wert `"rot"` im ersten Array automatisch der Schlüssel `0` zugewiesen wird, während ihm im zweiten Array `1` zugewiesen wird, weil der Schlüssel `0` bereits von `gelb` belegt ist.

`<?php
function key_compare_func($a, $b)
{
return $a <=> $b;
}
$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 überprüft nur eine Dimension eines n-dimensionalen Arrays. Es ist möglich, tiefere Dimensionen zu überprüfen, 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open