Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Diff_Uassoc (), um benutzerfreundliche Daten mit Standardwerten zu vergleichen

Verwenden Sie Array_Diff_Uassoc (), um benutzerfreundliche Daten mit Standardwerten zu vergleichen

M66 2025-05-15

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.

1. Funktion Einführung

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.

2. Beispielcode: Vergleich von Benutzer mit Benutzer mit Standardwerten

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";
}
?>

3.. Code Parsing

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

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

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

  4. Ausgangsergebnis :

    • Wenn es einen Unterschied gibt, geben Sie verschiedene Datenelemente aus. Wenn beide genau gleich sind, wird eine Eingabeaufforderungsnachricht ausgegeben.

4. Praktische Anwendung

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.

5. Dinge zu beachten

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