Die PHP-Funktion array_udiff() wird verwendet, um die Schlüsselnamen und Schlüsselwerte von zwei (oder mehr) Arrays zu vergleichen und die Differenz zurückzugeben. Dieser Vergleich wird über eine vom Benutzer bereitgestellte Rückruffunktion durchgeführt. Wenn das erste Argument als kleiner, gleich oder größer als das zweite Argument angesehen wird, muss eine Ganzzahl kleiner als Null, gleich Null bzw. größer als Null zurückgegeben werden. In diesem Artikel wird die Verwendung der Funktion array_udiff() anhand von Beispielen erläutert:
array_udiff_assoc – berechnet den Differenzsatz von Arrays mit Indexprüfung und verwendet die Callback-Funktion zum Vergleichen von Daten
Basic Syntax:
array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callable $data_compare_func )
Dieser Vergleich wird über eine vom Benutzer bereitgestellte Rückruffunktion durchgeführt. Wenn das erste Argument als kleiner, gleich oder größer als das zweite Argument angesehen wird, muss eine Ganzzahl kleiner als Null, gleich Null bzw. größer als Null zurückgegeben werden.
Hinweis: Beachten Sie, dass diese Funktion nur eine Dimension des mehrdimensionalen Arrays überprüft. Natürlich können Sie array_udiff_assoc($array1[0], $array2[0], "some_comparison_func"); verwenden, um tiefere Dimensionen zu überprüfen.
Parametereinführung
Rückgabewert
array_udiff_assoc() gibt ein Array zurück, das alles in array1, aber nicht in anderen Werten enthält im Parameterarray. Beachten Sie, dass im Gegensatz zu array_diff() und array_udiff() auch Schlüsselnamen zum Vergleich verwendet werden. Der Vergleich von Array-Daten erfolgt mithilfe vom Benutzer bereitgestellter Rückruffunktionen. Dies ist das entgegengesetzte Verhalten zu array_diff_assoc(), das eine interne Funktion zum Vergleich verwendet.
Instanz
<?php class cr { private $priv_member; function cr($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; } } $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_assoc($a, $b, array( "cr", "comp_func_cr" )); print_r($result); ?>
Laufergebnis:
Array ( [0.1] => cr Object ( [priv_member:private] => 9 ) [0.5] => cr Object ( [priv_member:private] => 12 ) [0] => cr Object ( [priv_member:private] => 23 ) )
Im obigen Beispiel können Sie sehen, dass das Schlüssel-Wert-Paar „1“ => new cr(4) gleichzeitig in beiden Arrays vorkommt und daher nicht in der Ausgabe dieser Funktion enthalten ist.
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!
Weitere PHP-Array_udiff_assoc-Beispiele zur Berechnung der Differenzmenge zweier Arrays finden Sie auf der chinesischen PHP-Website!