Aktueller Standort: Startseite> Neueste Artikel> Erkennungsfall des Formulars ändern

Erkennungsfall des Formulars ändern

M66 2025-05-15

Bei der PHP -Entwicklung ist die Änderungserkennung von Formulardaten eine häufige Anforderung, insbesondere wenn man prüft, ob der Benutzer die Daten im Formular geändert hat. PHP bietet eine Vielzahl von Methoden zur Implementierung des Datenvergleichs, und die Funktion array_diff_uassoc ist ein sehr effektives Tool. Es kann nicht nur die Unterschiede zwischen zwei Arrays vergleichen, sondern auch die Unterschiede basierend auf benutzerdefinierten Schlüsselwertvergleichsfunktionen beurteilen. Dadurch verfügt es über ein hervorragendes Anwendungspotenzial in der Erkennung von Formdatenänderungen.

Was ist die Funktion array_diff_uassoc ?

Die Funktion array_diff_uassoc wird verwendet, um die Schlüsselnamen und die entsprechenden Werte von zwei Arrays zu vergleichen. Ähnlich wie bei der Funktion array_diff_assoc überprüft Array_diff_uassoc die Unterschiede in den Schlüssel und Werten von Elementen in einem Array. Die Differenz besteht jedoch darin, dass wir eine benutzerdefinierte Vergleichsfunktion für den Vergleich der Werte von Elementen in einem Array bereitstellen können.

Funktionsdefinition:

 array_diff_uassoc ( array $array1 , array $array2 , callable $key_compare_func ) : array
  • $ Array1 : Das erste Array.

  • $ array2 : Das zweite Array.

  • $ key_compare_func : Eine Rückruffunktion, die die Elementtasten in einem Array vergleicht. Wenn die Schlüssel gleich sind, vergleichen Sie ihre Werte weiter.

Diese Funktion gibt ein Schlüsselwertpaar zurück, das in $ array1 vorhanden ist, aber in $ array2 nicht existiert.

Implementieren Sie die Erkennung von Formdaten ändern über Array_Diff_Uassoc

Angenommen, wir haben ein Array, das die ursprünglichen Formulardaten des Benutzers und ein Array mit den vom Benutzer übermittelten neuen Formulardaten enthält. Wir können array_diff_uassoc verwenden, um festzustellen, welche Felder geändert haben.

Beispielcode:

 <?php
// User Rohdaten
$original_data = [
    'username' => 'john_doe',
    'email' => 'john@example.com',
    'age' => 28,
];

// Neue Daten, die von Benutzern übermittelt wurden
$new_data = [
    'username' => 'john_doe',
    'email' => 'john@m66.net',  // Hier wird der ursprüngliche Domainname ersetzt durch m66.net
    'age' => 29,
];

// Definieren Sie eine Vergleichsfunktion,Wird verwendet, um die Werte eines Formfeldfelds zu vergleichen
function custom_compare($a, $b) {
    return $a === $b ? 0 : 1;
}

// verwenden array_diff_uassoc Überprüfen Sie die Änderungen
$changed_fields = array_diff_uassoc($new_data, $original_data, 'custom_compare');

// Ausgabe geändert Felder
echo "Felder ändern:\n";
print_r($changed_fields);
?>

Code Parsen:

  1. Wir erstellen zwei Arrays: $ original_data und $ new_data , die die ursprünglichen Formulardaten bzw. die vom Benutzer eingerichteten Formulardaten speichern.

  2. Custom_Compare ist eine einfache Vergleichsfunktion, die vergleicht, ob der Wert eines Formularfelds gleich ist. Wir verwenden es, um sicherzustellen, dass der Unterschied nur als Differenz erkannt wird, wenn sich der Wert des Feldes ändert.

  3. Rufen Sie die Funktion array_diff_uassoc an, geben Sie das Originaldatenarray über, senden Sie das Datenarray und benutzerdefinierte Vergleichsfunktion.

  4. Schließlich geben wir die geänderten Felder aus, um zu sehen, welche Felder ihre Werte geändert haben.

Ausgangsergebnis: