Aktueller Standort: Startseite> Neueste Artikel> So implementieren Sie einen Schlüsselvergleich, der den Fall durch Vergleichsfunktion ignoriert

So implementieren Sie einen Schlüsselvergleich, der den Fall durch Vergleichsfunktion ignoriert

M66 2025-06-06

In PHP wird die Funktion array_diff_uassoc verwendet, um zwei Arrays zu vergleichen, wodurch alle Teile des ersten Arrays zurückgegeben werden, die sich vom zweiten Array unterscheiden. Die Hauptmerkmal dieser Funktion besteht darin, dass wir eine benutzerdefinierte Vergleichsfunktion zum Vergleichen von Schlüssel mit Arrays bereitstellen. Durch die Kombination von benutzerdefinierten Vergleichsfunktionen können wir wichtige Vergleiche implementieren, die den oberen und unteren Fall ignorieren.

In diesem Artikel wird vorgestellt, wie die Funktion array_diff_uassoc verwendet wird, um wichtige Vergleiche zu implementieren, die den Fall ignorieren.

1. Einführung in die Funktion array_diff_uassoc

Die Syntax der Funktion array_diff_uassoc lautet wie folgt:

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 und $ array2 : Zwei Arrays zu vergleichen.

  • $ key_compare_func : benutzerdefinierte Schlüsselvergleichsfunktion zum Vergleich von zwei Array -Tasten.

Diese Funktion gibt ein Array zurück, das Schlüsselwertpaare enthält, die in $ array1 , jedoch nicht in $ array2 , vorhanden sind.

2. Ignorieren Sie den Fallvergleich

Um wichtige Vergleiche zu implementieren, die den Fall ignorieren, müssen wir eine benutzerdefinierte Vergleichsfunktion schreiben, die die Schlüssel in einheitliches Kleinbuchstaben oder Großbuchstaben umwandelt und dann vergleicht. Hier ist ein Codebeispiel für die Implementierung:

 <?php

// Benutzerdefinierte Schlüsselvergleichsfunktion:Fall ignorieren
function case_insensitive_key_compare($key1, $key2) {
    return strcasecmp($key1, $key2);
}

// Definieren Sie zwei Arrays
$array1 = [
    "first" => "apple",
    "second" => "banana",
    "Third" => "cherry"
];

$array2 = [
    "FIRST" => "apple",
    "second" => "grape",
    "third" => "kiwi"
];

// verwenden array_diff_uassoc Vergleich von zwei Arrays,Fall ignorieren
$result = array_diff_uassoc($array1, $array2, 'case_insensitive_key_compare');

// Ausgangsergebnis
print_r($result);

?>

3.. Code Parsing

  • Benutzerdefinierte Vergleichsfunktion : Case_insensitive_key_compare verwendet die integrierte StrCaseCMP -Funktion von PHP, die zwei Zeichenfolgen vergleicht und den Fall ignoriert. Wenn die beiden Zeichenfolgen gleich sind, gibt StrCaseCMP 0 zurück, andernfalls gibt es einen Wert ungleich Null zurück.

  • Array -Definition : $ array1 und $ array2 sind die beiden Arrays, die wir vergleichen möchten. Beachten Sie, dass sich ihre Schlüsselnamen in Fall unterscheiden.

  • Rufen Sie Array_DIFF_UASSOC an : Wir übergeben Case_insensitive_key_compare als benutzerdefinierte Vergleichsfunktion an Array_Diff_Uassoc , wodurch wichtige Vergleiche implementiert werden, die den Fall ignorieren.

  • Ausgabe : Schließlich enthält das $ Ergebnisarray Elemente in $ array1 , deren Schlüsselwerte nicht mit den Schlüsselwerten von $ array2 übereinstimmen.

4. Ausgangsergebnis

Beim Ausführen des obigen Codes ist die Ausgabe wie folgt:

 Array
(
    [third] => cherry
)

Obwohl der Schlüssel in $ array1 "dritter" ist und der Schlüssel in $ array2 "dritter" ist , werden sie als gleich angesehen, da wir eine Vergleichsmethode verwenden, die den Fall ignoriert.