array_udiff_uassoc

(PHP 5, PHP 7, PHP 8)

array_udiff_uassocErmittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion

Beschreibung

array_udiff_uassoc(
    array $array,
    array ...$arrays,
    callable $value_compare_func,
    callable $key_compare_func
): array

Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion.

Beachten Sie, dass anders als bei array_diff() und array_udiff() Schlüssel für den Vergleich herangezogen werden.

Parameter-Liste

array

Das erste Array.

arrays

Arrays zum Vergleichen.

value_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.

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.

key_compare_func

Ebenso wird der Vergleich der Schlüssel (Indizes) von der benutzerdefinierten Callbackfunktion data_compare_func durchgeführt. In dieser Hinsicht ist das Verhalten anders als jenes von array_diff_assoc(), welches die Indizes mit einer eingebauten Vergleichsfunktion vergleicht.

Rückgabewerte

Gibt ein Array mit allen Werten von array, welche in keinem der anderen Argumente enthalten sind, zurück.

Beispiele

Beispiel #1 array_udiff_uassoc()-Beispiel

<?php
class cr {
private
$priv_member;
function
__construct($val)
{
$this->priv_member = $val;
}

static function
comp_func_cr($a, $b)
{
if (
$a->priv_member === $b->priv_member) return 0;
return (
$a->priv_member > $b->priv_member)? 1:-1;
}

static function
comp_func_key($a, $b)
{
if (
$a === $b) return 0;
return (
$a > $b)? 1:-1;
}
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In unserem Beispiel sehen Sie, dass das "1" => new cr(4) Paar in beiden Arrays enthalten ist und daher nicht in der Ausgabe der Funktion auftaucht. Denken Sie daran, dass Sie zwei Callbackfunktionen angeben müssen.

Anmerkungen

Hinweis: Bitte beachten Sie, dass diese Funktion nur eine Dimension eines n-dimensionalen Arrays überprüft. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func"); verwenden.

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top