Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Rückrufe, um die Vergleichslogik "Ignor -Fall" von Schlüsselnamen zu implementieren

Verwenden Sie Rückrufe, um die Vergleichslogik "Ignor -Fall" von Schlüsselnamen zu implementieren

M66 2025-05-15

In PHP ist Array_Diff_Ukey () eine sehr praktische Funktion, die die "Schlüsselnamen" von zwei oder mehr Arrays vergleicht und Elemente derjenigen im ersten Array zurückgibt.

Normalerweise verwendet diese Funktion eine Rückruffunktion, um die Art und Weise anzupassen, wie Schlüsselnamen verglichen werden. Der Vergleich des Standardschlüsselnamens ist jedoch Fallempfindlichkeit, dh 'Schlüssel' und 'Schlüssel' werden als zwei verschiedene Schlüsselnamen betrachtet.

Aber was ist, wenn wir den Vergleichsfall ignorieren wollen (d. H. "Schlüssel" und "Schlüssel" als die gleichen Schlüssel angesehen werden)? Die Antwort besteht darin, eine benutzerdefinierte Rückruffunktion zu verwenden, um eine unempfindliche Vergleichslogik zu implementieren.

Beispielcode

Hier ist ein Beispiel, das zeigt, wie Sie array_diff_ukey () und eine Rückruffunktion verwenden, um den Fall beim Vergleich von Schlüsselnamen zu ignorieren:

 <?php

$array1 = [
    "UserID" => 1,
    "Email" => "user1@m66.net",
    "Name" => "Alice"
];

$array2 = [
    "userid" => 2,
    "email" => "user2@m66.net"
];

// Benutzerdefinierte Vergleichsfunktionen:Fallvergleich ignorieren
function compareKeysCaseInsensitive($key1, $key2) {
    return strcasecmp($key1, $key2); // zurückkehren0Zeigt Gleichheit an
}

$result = array_diff_ukey($array1, $array2, "compareKeysCaseInsensitive");

print_r($result);

Ausgangsergebnis

 Array
(
    [Name] => Alice
)

Wie oben gezeigt, gibt es, obwohl es in $ array1 Benutzer und E -Mail gibt, da es in $ array2 userID und E -Mail vorhanden ist, nach dem ignorierten Fall gleich und daher vom Ergebnis ausgeschlossen sind.

Am Ende bleibt nur der Name übrig, da er keinen Artikel hat, der "Schlüsselname gleich (ignorieren)" enthält.

Zusammenfassen

Wenn Sie bei der Verarbeitung von Arrays Schlüsselnamen vergleichen müssen, aber Fallunterschiede ignorieren möchten, ist Array_Diff_Ukey () mit StrCasecmp () eine sehr prägnante und leistungsstarke Kombination:

  • Verwenden Sie Array_Diff_Ukey (), um Schlüsselnamen zu vergleichen

  • Verwenden Sie StrCasecmp () als Rückruffunktion, um die von Fall unempfindliche Vergleichslogik zu implementieren

Dies ist besonders nützlich, wenn Benutzereingaben, Datenbankfeldnamen oder Daten, die sich in den Fall, aber semantisch konsistent unterscheiden können, abschneiden.

Ich hoffe, dieser Artikel ist hilfreich, damit Sie PHP -Array -Funktionen verstehen und verwenden!