Aktueller Standort: Startseite> Neueste Artikel> Was ist die Funktion array_diff_key () in PHP?

Was ist die Funktion array_diff_key () in PHP?

M66 2025-05-17

In PHP wird die Funktion array_diff_key () verwendet, um die Unterschiede in den Schlüsselnamen (Tasten) zwischen zwei Arrays zu vergleichen. Sein Zweck ist es, Elemente im ersten Array zurückzugeben, die sich vom Schlüsselwert (Schlüssel) des zweiten Arrays unterscheiden. Wenn im zweiten Array ein Schlüssel vorhanden ist, werden die dem Schlüssel entsprechenden Elemente ausgeschlossen.

Das Hauptanwendungsszenario dieser Funktion ist, dass Sie beim Umgang mit mehreren assoziativen Arrays herausfinden müssen, welche Schlüssel in einem Array existieren, aber in einem anderen fehlt. Insbesondere bei der Ausführung von Datenfilterung oder Verschmelzung ist Array_Diff_key () ein sehr nützliches Tool.

Funktionssyntax

 array_diff_key(array $array1, array $array2, array ...$arrays): array

Parameterbeschreibung:

  • $ Array1 : Das erste Array, das zum Vergleich verwendet wird.

  • $ array2 : Das zweite Array zum Vergleich.

  • $ arrays : Sie können für den Vergleich in mehreren Arrays übergeben.

Rückgabewert:

  • Gibt ein neues Array zurück, das alle Schlüsselwertpaare enthält, die in $ array1 vorhanden sind, aber in $ array2 fehlen.

Beispiel: So verwenden Sie Array_Diff_key ()

Angenommen, wir haben zwei Arrays $ Array1 und $ Array2 und möchten herausfinden, welche Schlüssel in $ array1 existiert, aber nicht in $ array2 :

 <?php
$array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "d" => 4
];

$array2 = [
    "b" => 2,
    "c" => 3
];

$result = array_diff_key($array1, $array2);
print_r($result);
?>

Ausgabe:

 Array
(
    [a] => 1
    [d] => 4
)

In diesem Beispiel gibt die Funktion array_diff_key () die Schlüssel A und D in $ array1 zurück, da sie nicht in $ array2 angezeigt werden.

Vergleich der meisten Arrays

Wenn Sie mehrere Arrays gleichzeitig vergleichen möchten, können Sie mehrere Arrays als Parameter übergeben:

 <?php
$array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "d" => 4
];

$array2 = [
    "b" => 2,
    "c" => 3
];

$array3 = [
    "a" => 1,
    "d" => 4
];

$result = array_diff_key($array1, $array2, $array3);
print_r($result);
?>

Ausgabe:

 Array
(
    [a] => 1
)

In diesem Beispiel vergleicht Array_diff_key () drei Arrays und gibt schließlich nur ein Schlüsselwertpaar zurück, da es in den beiden anderen Arrays nicht existiert.

Typische Anwendungsszenarien

Array_diff_key () wird in den folgenden Szenarien üblicherweise verwendet:

  1. Datenfilterung : Wenn Sie beispielsweise Benutzerdaten verarbeiten, können Sie diese Funktion zum Filtern verwenden, wenn Sie feststellen, welche Felder nicht in einer voreingestellten Konfiguration vorhanden sind.

  2. Vergleichskonfigurationsdateien : Diese Funktion kann verschiedene Versionen von Konfigurationsarrays vergleichen, um herauszufinden, welches Konfigurationselement entfernt oder geändert wurde.

  3. Behandeln Sie wichtige Unterschiede in mehrdimensionalen Arrays : Wenn Ihr Array ein mehrdimensionales Array ist, können Sie Funktionen wie Array_Map () kombinieren, um komplexere Operationen auszuführen, um verschiedene Schlüsselwertpaare zu finden.

Dinge zu beachten

  • array_diff_key () vergleicht die Schlüsselnamen des Arrays, nicht die Schlüsselwerte. Wenn Sie die Wertunterschiede in einem Array vergleichen müssen, können Sie Array_Diff () verwenden.

  • Diese Funktion bewahrt die Schlüsselnamen und Schlüsselwerte in $ array1 . Wenn Sie die Werte des Arrays anstelle des Schlüsselwertpaars beibehalten möchten, sollten Sie andere Methoden (z. B. Array_Values ​​() ) verwenden, um das Endergebnis zu erhalten.

Zusammenfassung

array_diff_key () ist eine sehr nützliche Funktion, die insbesondere für den Vergleich wichtiger Unterschiede in Arrays geeignet ist. Durch diese Funktion können wir leicht herausfinden, welche Schlüssel in einem Array in anderen Arrays nicht verfügbar sind, wodurch wir uns dabei helfen, Daten zu filtern und zu verarbeiten. In der tatsächlichen Entwicklung wird es häufig für die Datenüberprüfung, den Konfigurationsdateivergleich und die differenzierten Operationen von Arrays verwendet.