In PHP sind Array_intersect_key und Array_Diff_key Array -Verarbeitungsfunktionen, die zum Vergleich von Schlüsselnamen von Arrays verwendet werden, aber ihr Verhalten und Zweck sind unterschiedlich. In diesem Artikel werden wir ihre Unterschiede im Detail diskutieren und praktische Beispiele verwenden, um die Nutzungsszenarien dieser beiden Funktionen besser zu verstehen.
Die Funktion array_intersect_key wird verwendet, um die Schlüsselnamen und die entsprechenden Werte in mehreren Arrays in allen Arrays zurückzugeben. Das heißt, es gibt ein neues Array zurück, das alle Elemente enthält, deren Schlüsselnamen in mehreren Arrays vorhanden sind.
array array_intersect_key(array $array1, array $array2, array ...$arrays)
$ array1 : Das erste Array, das man vergleichen sollte.
$ array2 : Das zweite Array zu vergleichen.
$ arrays : Zum Vergleich können mehrere Arrays ausgewählt werden.
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$result = array_intersect_key($array1, $array2);
print_r($result);
?>
Array
(
[b] => 2
[c] => 3
)
In diesem Beispiel gibt Array_intersect_Key die Werte zurück, die den Schlüsselnamen B und C entsprechen, die sowohl in $ array1 als auch $ array2 vorhanden sind. Daher enthält das zurückgegebene Ergebnis die Werte dieser beiden Schlüsselnamen.
Die Funktion array_diff_key gibt ein Array zurück, das im ersten Array, jedoch nicht in anderen Arrays enthalten ist. Sein Zweck ist es, Schlüssel aus dem ersten Array zu entfernen, das auch in anderen Arrays existiert.
array array_diff_key(array $array1, array $array2, array ...$arrays)
$ array1 : Das erste Array, das mit anderen Arrays verglichen wird.
$ array2 : Das zweite Array zu vergleichen.
$ arrays : Zum Vergleich können mehrere Arrays ausgewählt werden.
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$result = array_diff_key($array1, $array2);
print_r($result);
?>
Array
(
[a] => 1
)
In diesem Beispiel gibt Array_Diff_key ein Element zurück, dessen Schlüssel in $ array1 als A genannt wird, da dieser Schlüssel in $ array2 nicht vorhanden ist.
Der Hauptunterschied zwischen array_intersect_key und array_diff_key ist:
Array_intersect_key gibt Schlüsselwertpaare zurück, die in allen Arrays existieren.
array_diff_key gibt Schlüsselwertpaare zurück, die im ersten Array vorhanden sind, aber nicht in anderen Arrays enthalten sind.
Angenommen, Sie haben drei Arrays:
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$array3 = ['c' => 7, 'd' => 8];
array_intersect_key ($ array1, $ array2, $ array3) wird ['C' => 3] zurückgegeben, da C ein Schlüssel ist, der in allen Arrays vorhanden ist.
Array_diff_key ($ array1, $ array2, $ array3) kehrt ['a' => 1, 'b' => 2] zurück, da A und B nur in $ array1 existieren, nicht in $ array2 und $ array3 .
Array_intersect_key wird verwendet, um Schlüssel zu finden, die in mehreren Arrays vorhanden sind und diese Schlüssel und deren entsprechende Werte zurückgeben.
Array_Diff_Key wird verwendet, um Schlüssel zu finden, die sich im ersten Array befinden, jedoch nicht im nachfolgenden Array und diese Schlüssel und deren entsprechende Werte zurückgeben.
Diese beiden Funktionen sind bei Array -Operationen sehr nützlich, insbesondere in Szenarien, in denen Vergleich und Filterung basierend auf Schlüsselnamen erforderlich sind. Das Verständnis ihrer Unterschiede kann Ihnen helfen, PHP -Arrays effizienter zu verarbeiten.