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.
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.
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.
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.
Array_diff_key () wird in den folgenden Szenarien üblicherweise verwendet:
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.
Vergleichskonfigurationsdateien : Diese Funktion kann verschiedene Versionen von Konfigurationsarrays vergleichen, um herauszufinden, welches Konfigurationselement entfernt oder geändert wurde.
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.
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.
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.