Aktueller Standort: Startseite> Neueste Artikel> So vergleichen Sie Array -Tasten mit Array_Diff_Ukey ()

So vergleichen Sie Array -Tasten mit Array_Diff_Ukey ()

M66 2025-06-06

In PHP ist Array_Diff_Ukey () eine sehr nützliche Funktion, mit der die Unterschiede in den Schlüsselnamen zweier Arrays verglichen werden können. Im Gegensatz zur Funktion array_diff () , die nur die Werte eines Arrays vergleicht, ermöglicht es uns mit Array_Diff_Ukey (), die Schlüssel eines Arrays über eine benutzerdefinierte Vergleichsfunktion zu vergleichen. Diese Funktion ist sehr geeignet für Szenarien, in denen mehrdimensionale Arrays verarbeitet werden oder in denen Schlüsselnamen gemäß den komplexen Regeln verglichen werden müssen.

Grammatik

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array

Parameterbeschreibung:

  • $ Array1 : Das erste Array.

  • $ array2 : Das zweite Array.

  • $ key_compare_func : Eine Rückruffunktion, die zwei Schlüssel vergleicht. Wenn der Rückgabewert weniger als 0 beträgt, bedeutet dies, dass der Schlüssel von $ array1 geringer ist als der Schlüssel von $ array2 ; Wenn der Rückgabewert größer als 0 ist, bedeutet dies, dass der Schlüssel von $ array1 größer ist als der Schlüssel von $ array2 ; Wenn der Rückgabewert gleich 0 ist, bedeutet dies, dass die beiden Schlüssel gleich sind.

Rückgabewert:

Gibt ein Array zurück, das den Schlüsselnamen und den Wert von Elementen in $ array1 enthält, jedoch nicht in $ array2 .

Beispiel

Hier finden Sie ein einfaches Beispiel, um Array_Diff_Ukey () zu vergleichen, um die Differenzen der Schlüsselnamen zwischen zwei Arrays zu vergleichen:

 <?php

// Das erste Array
$array1 = [
    'apple' => 100,
    'banana' => 200,
    'orange' => 300,
];

// Das zweite Array
$array2 = [
    'banana' => 200,
    'grape' => 400,
    'kiwi' => 500,
];

// Benutzerdefinierte Schlüsselvergleichsfunktion
function compare_keys($key1, $key2) {
    return strcmp($key1, $key2); // Vergleichen Sie die Schlüsselnamen mit der Zeichenfolge
}

// verwenden array_diff_ukey Vergleich der Unterschiede in den Schlüsselnamen zweier Arrays
$result = array_diff_ukey($array1, $array2, 'compare_keys');

// Druckergebnisse
print_r($result);
?>

Ausgangsergebnis:

 Array
(
    [apple] => 100
    [orange] => 300
)

erklären

Im obigen Beispiel wird die Funktion array_diff_ukey () die Schlüsselnamen der beiden Arrays $ Array1 und $ Array2 vergleichen. In diesem Beispiel gibt es in $ Array2 die Schlüssel "Apple" und "Orange" in $ array1 nicht, sodass sie im zurückgegebenen Ergebnis erhalten bleiben. Der 'Banana' -Schlüssel ist in beiden Arrays enthalten, daher wird er ausgeschlossen.

Anwendbare Szenarien

array_diff_ukey () ist für die folgenden Szenarien sehr geeignet:

  1. Benutzerdefinierte Vergleich von Schlüsselnamen : Array_Diff_Ukey () liefert leistungsstarke Funktionen, wenn Sie Schlüssel eines Arrays basierend auf den benutzerdefinierten Regeln (z. B. Fall, Charakterreihenfolge usw.) vergleichen müssen.

  2. Verarbeitung von mehrdimensionalen Arrays : Wenn Ihr Array mehrdimensional ist und nur Schlüsseldamen vergleichen muss, ohne sich um Werte zu kümmern, können Sie Array_Diff_Ukey () verwenden, um es zu verarbeiten.

Erweiterte Anwendung

Angenommen, wir müssen die Schlüssel von zwei URL -Arrays vergleichen und möchten den Hauptbereich der URL vergleichen. Sie können den Hauptdomänennamen der URL über die Funktion parse_url () extrahieren und dann eine benutzerdefinierte Vergleichsfunktion zum Vergleich verwenden.