Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Diff_Ukey (), um den Unterschied zwischen den Schlüsselnamen zweier Arrays herauszufinden

Verwenden Sie Array_Diff_Ukey (), um den Unterschied zwischen den Schlüsselnamen zweier Arrays herauszufinden

M66 2025-05-15

In PHP ist Array_Diff_Ukey () eine sehr nützliche Funktion, mit der die Schlüsselnamen von zwei Arrays verglichen und diese Schlüsselnamen im ersten Array zurückgegeben werden können, die sich nicht im zweiten Array befinden. Diese Funktion ist für uns sehr geeignet, wenn wir die Unterschiede in den Schlüsselnamen zweier Arrays herausfinden müssen, insbesondere wenn die Schlüsselnamen komplizierter sind, können wir sie über eine benutzerdefinierte Vergleichsfunktion beurteilen.

Funktion Einführung

Der Prototyp der Funktion array_diff_ukey () lautet wie folgt:

 array array_diff_ukey ( array $array1 , array $array2 , callable $key_compare_func )
  • $ array1 : Das erste Array, das verglichen wird.

  • $ array2 : Das zweite Array, das mit dem ersten Array verglichen wird.

  • $ key_compare_func : Eine benutzerdefinierte Vergleichsfunktion zum Vergleich von zwei Schlüsselnamen. Diese Funktion nimmt zwei Schlüsselnamen als Parameter auf und sollte eine Ganzzahl zurückgeben, die das Ergebnis des Vergleichs darstellt.

Beispielcode

Schauen wir uns ein bestimmtes Beispiel an, um zu demonstrieren, wie die Funktion array_diff_ukey () verwendet wird, um den Unterschied in den Schlüsselnamen zwischen zwei Arrays zu finden.

 <?php
// Definieren Sie zwei Arrays
$array1 = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3,
];

$array2 = [
    'banana' => 4,
    'date' => 5,
    'fig' => 6,
];

// Benutzerdefinierte Vergleichsfunktionen
function key_compare_func($key1, $key2) {
    // Vergleichen Sie direkt, ob die Schlüsselnamen gleich sind
    return strcmp($key1, $key2);
}

// verwenden array_diff_ukey() Vergleich der Schlüsselnamen von zwei Arrays
$result = array_diff_ukey($array1, $array2, 'key_compare_func');

// Ausgangsergebnis
print_r($result);
?>

Ergebnisse Ausgabe:

 Array
(
    [apple] => 1
    [cherry] => 3
)

Analyse

Im obigen Beispiel haben wir zwei Arrays $ Array1 und $ array2 , wobei $ array1 Schlüsselnamen "Apple" , "Banana" und "Cherry" und $ array2 enthält, und $ array2 enthält Schlüsselnamen "Banana" , "Datum" und "Abb" . Durch den Aufruf von Array_Diff_Ukey () übergeben wir eine benutzerdefinierte Vergleichsfunktion KEY_COMPare_Func , mit der verglichen wird, ob die beiden Schlüsselnamen gleich sind. Schließlich gibt die Funktion ein neues Array zurück, das die Schlüsselnamen "Apple" und "Cherry" in $ array1 enthält, da diese beiden Schlüsselnamen nicht in $ array2 angezeigt werden.

Verwenden Sie benutzerdefinierte Vergleichsfunktionen

Die Kraft von Array_Diff_Ukey () ist, dass sie benutzerdefinierte Vergleichsfunktionen unterstützt. Dies bedeutet, dass wir nicht nur Vergleiche mit einfachen Schlüsselnamen durchführen, sondern auch eine komplexe Vergleichslogik entsprechend unseren eigenen Bedürfnissen schreiben können. Wenn wir beispielsweise Fallunterschiede in den Schlüsselnamen ignorieren müssen, können wir dies in der Vergleichsfunktion tun.

Beispiel: Fallvergleich ignorieren

 <?php
// Definieren Sie zwei Arrays
$array1 = [
    'Apple' => 1,
    'banana' => 2,
    'cherry' => 3,
];

$array2 = [
    'apple' => 4,
    'Date' => 5,
    'fig' => 6,
];

// Benutzerdefinierte Vergleichsfunktionen,Fall ignorieren
function case_insensitive_key_compare_func($key1, $key2) {
    return strcasecmp($key1, $key2);
}

// verwenden array_diff_ukey() Vergleich der Schlüsselnamen von zwei Arrays
$result = array_diff_ukey($array1, $array2, 'case_insensitive_key_compare_func');

// Ausgangsergebnis
print_r($result);
?>

Ergebnisse Ausgabe:

 Array
(
    [banana] => 2
    [cherry] => 3
)

In diesem Beispiel ignoriert PHP die Fallunterschiede und berücksichtigt sie die gleichen Schlüsselnamen. Daher wird das Endergebnis nur die beiden Schlüsselnamen "Banane" und "Cherry" zurückgeben, da in $ Array2 "Apple" als in $ Array2 gefunden wurde.

Zusammenfassen

Durch die Verwendung der Funktion array_diff_ukey () können wir leicht den Unterschied in den Schlüsselnamen zwischen zwei Arrays finden. Diese Funktion ist sehr leistungsfähig und unterstützt eine benutzerdefinierte Vergleichslogik, sodass sie mit verschiedenen komplexen Vergleichsanforderungen fertig werden kann. Unabhängig davon, ob es sich um einen einfachen Schlüsselnamenvergleich oder ein Vergleich handelt, bei dem die obere und untere Fall ignoriert werden muss, kann Array_Diff_Ukey () leicht behandelt werden.