In PHP ist die Funktion array_diff_uassoc () ein sehr leistungsstarkes Werkzeug zum Vergleich von zwei Arrays und dem Finden verschiedener Teile für Schlüsselwertpaare. Im Gegensatz zu Array_Diff_assoc () ermöglicht es uns mit Array_Diff_Uassoc () die Vergleichsfunktion von Schlüsselnamen, was es bei der Verarbeitung von Benutzer mit Standardwerten sehr nützlich macht.
Die Funktion array_diff_uassoc () wird verwendet, um die Schlüsselnamen von zwei Arrays und den entsprechenden Werten zu vergleichen und gibt ein Array zurück, das verschiedene Schlüsselwertpaare enthält. Die Funktionssignatur ist wie folgt:
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
$ array1 : Das erste Array, normalerweise die vom Benutzer eingereichten Daten.
$ array2 : Das zweite Array, normalerweise der Standardwert.
$ key_compare_func : Eine Rückruffunktion zum Vergleich von Schlüssel. Rückgabe 0 bedeutet, dass der Schlüssel der gleiche ist und andere Werte bedeutet, dass der Schlüssel unterschiedlich ist.
Angenommen, Sie entwickeln ein Formular, in dem der Benutzer Daten in den Standardwert einreicht und die Unterschiede herausfinden. Hier ist ein Code -Beispiel für die Verwendung von Array_Diff_Uassoc (), um diese Funktion zu implementieren:
<?php
// Standardwert
$default_values = [
'name' => 'John Doe',
'email' => 'john.doe@m66.net',
'age' => 30,
];
// Benutzernde Daten
$user_data = [
'name' => 'Jane Doe',
'email' => 'jane.doe@m66.net',
'age' => 30,
];
// Benutzerdefinierte Schlüsselvergleichsfunktion
function custom_key_compare($key1, $key2) {
return strcmp($key1, $key2); // Verwenden Sie den String -Vergleich
}
// verwenden array_diff_uassoc Finden Sie den Unterschied
$differences = array_diff_uassoc($user_data, $default_values, 'custom_key_compare');
// Der Ausgangsunterschied
if (!empty($differences)) {
echo "Entdecken Sie verschiedene Datenelemente:\n";
print_r($differences);
} else {
echo "Benutzernde Daten与Standardwert完全一致。\n";
}
?>
Definieren Sie Standardwerte und vom Benutzer eingereichte Daten :
Das Array $ default_values sind die Standarddaten des Systems, und die vom Benutzer eingerichteten Daten werden im Array $ user_data gespeichert.
Benutzerdefinierte Schlüsselvergleichsfunktion :
Custom_key_compare ist eine Funktion, die wir definieren, um Tasten von Arrays zu vergleichen. Hier verwenden wir die Funktion von Strcmp (), um String -Vergleiche auf den Tasten durchzuführen.
Rufen Sie array_diff_uassoc () an :
Wir verwenden die Funktion array_diff_uassoc (), um zwei Arrays (Benutzerdaten und Standardwerte) zu vergleichen und unsere benutzerdefinierte Schlüsselvergleichsfunktion zu übergeben.
Diese Funktion gibt ein Array zurück, das Schlüsselwertpaare enthält, die sich in Schlüsselnamen oder Werten unterscheiden.
Ausgangsergebnis :
Wenn es einen Unterschied gibt, geben Sie verschiedene Datenelemente aus. Wenn beide genau gleich sind, wird eine Eingabeaufforderungsnachricht ausgegeben.
Angenommen, Sie erstellen eine Website -Benutzereinstellungsseite, und die vom Benutzer übermittelten Formulardaten müssen mit der Standardkonfiguration des Systems verglichen werden, um herauszufinden, welche Elemente geändert wurden. Mit array_diff_uassoc () können Sie dies leicht erreichen, ohne viel Vergleichslogik manuell schreiben zu müssen.
Vergleich der Schlüsselnamen : Array_Diff_Uassoc () vergleichen nur Schlüssebernamen und Schlüsselwerte. Wenn Sie Werte unabhängig vom Schlüsseldamen vergleichen möchten, sollten Sie Array_Diff () oder Array_Diff_assoc () verwenden.
Verwendung von Rückruffunktionen : Die Callback -Funktion key_compare_func ist sehr flexibel und Sie können entscheiden, wie Sie Schlüsselnamen entsprechend den tatsächlichen Anforderungen vergleichen.