In PHP ist Array_Diff_Uassoc () eine sehr leistungsstarke Array-Funktion, die Elemente mit unterschiedlichen Schlüsselnamen in zwei Arrays zurückgeben kann, die auf benutzerdefinierten Vergleichsfunktionen basieren. Der erste Parameter der Funktion wird normalerweise als Hauptarray bezeichnet, das während des gesamten Betriebs eine sehr wichtige Rolle spielt. Warum spielt der erste Array -Parameter eine wichtige Rolle als Hauptarray in der Funktion array_diff_uassoc () ?
Die Funktion der Funktion array_diff_uassoc () besteht darin, die Schlüsselwerte von zwei oder mehr Arrays zu vergleichen und Elemente mit unterschiedlichen Schlüsselnamen zurückzugeben. Der Vergleich wird über die von Benutzer bereitgestellte Rückruffunktion durchgeführt. Die Funktionssignatur ist wie folgt:
array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) : array
$ array1 : Das Hauptarray, der erste Parameter, ist das zu verglichen.
$ array2, ... : Andere Arrays, die verglichen werden sollen.
$ key_compare_func : Eine benutzerdefinierte Vergleichsfunktion zum Vergleich der Schlüsselnamen eines Arrays.
Die Benchmark -Rolle des Hauptarrays
Der erste Parameter (Hauptarray) von array_diff_uassoc () spielt eine Benchmark -Rolle im Vergleichsprozess. Bei der Ausführung einer Funktion wird jeder Schlüsselname im Hauptarray mit dem Schlüsselnamen der anderen Arrays verglichen. Letztendlich haben die zurückgegebenen Schlüsselwertpaare, die im Hauptarray existieren, aber in anderen Arrays nicht existieren. Daher bestimmt das Hauptarray den Inhalt des Ergebnisses.
Das Hauptarray bestimmt das zurückgegebene Schlüsselwertpaar
Der Zweck der Vergleichsfunktion ist es, Schlüsselwertpaare zurückzugeben, die im Hauptarray vorhanden sind, aber nicht in anderen Arrays gefunden werden können. Unabhängig vom Ergebnis des Vergleichs erscheinen nur die Elemente im Hauptarray im endgültigen Rückgabeergebnis. Wenn Elemente im Hauptarray in anderen Arrays die gleichen Schlüsselnamen haben und den Vergleichsregeln entsprechen, sind sie vom Ergebnis ausgeschlossen.
Die Rolle von benutzerdefinierten Vergleichsfunktionen
Die benutzerdefinierte Vergleichsfunktion ( KEY_COMPare_Func ) wird verwendet, um Schlüsselnamen zu vergleichen, wodurch festgelegt wird, ob die Schlüsselnamen der beiden Arrays gleich sind. Diese Vergleichsfunktion empfängt normalerweise zwei Parameter: den Schlüssel im Hauptarray und den Schlüssel in den anderen Arrays. Durch diese Vergleichsfunktion können wir beurteilen, ob die Schlüsselnamen gemäß den bestimmten Regeln gleich sind. Jeder Schlüsselname im Hauptarray wird mit dem Schlüsselnamen in den anderen Arrays verglichen.
Sequenzfrage
Ein weiterer Aspekt ist zu beachten, dass Array_Diff_Uassoc () die Reihenfolge des Hauptarrays vergleicht und ob andere Arrays Elemente mit demselben Schlüsselnamen enthalten. Wenn sich die Schlüsselwertpaare der beiden Arrays in derselben Reihenfolge befinden, die Schlüsselnamen im Hauptarray jedoch nicht in anderen Arrays gefunden werden, werden sie dennoch als unterschiedliche Elemente behandelt.
Lassen Sie uns zeigen, wie array_diff_uassoc () mit einem einfachen Beispiel funktioniert. Angenommen, wir haben zwei Arrays und wollen Elemente finden, die im ersten Array existieren, aber im zweiten Array nicht gefunden werden.
<?php
// Definieren Sie das Hauptarray und ein anderes Array
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 4
];
// Benutzerdefinierte Vergleichsfunktionen:Wird verwendet, um Schlüsselnamen zu vergleichen
function compare_keys($key1, $key2) {
return strcmp($key1, $key2);
}
// verwenden array_diff_uassoc Vergleiche Arrays
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
// Ausgangsergebnis
print_r($result);
?>
Array
(
[c] => 3
)
In diesem Beispiel enthält das Hauptarray $ Array1 drei Schlüsselwertpaare, während $ Array2 nur zwei Schlüsselwertepaare hat. Durch die Funktion array_diff_uassoc () finden wir das Schlüsselwertpaar 'C' => 3 , das in $ array1 , aber nicht in $ array2 ist. Wie Sie sehen können, hat das zurückgegebene Array nur Elemente, die im Hauptarray vorhanden sind, aber nicht in anderen Arrays gefunden werden können.
Im Allgemeinen spielt der erste Array -Parameter in array_diff_uassoc () eine entscheidende Rolle als Hauptarray, das den Inhalt des Vergleichsergebnisses bestimmt. Durch den Vergleich der Schlüsselnamen im Hauptarray mit denen in anderen Arrays ist die ultimative Rückkehr ein Element, das im Hauptarray vorhanden ist, aber nicht in anderen Arrays gefunden werden kann. Daher ist das Verständnis der Rolle des Hauptarrays in dieser Funktion entscheidend für die rationale Verwendung der Funktion.