Aktueller Standort: Startseite> Neueste Artikel> Warum kann Array_diff_key () nicht verwendet werden, um Werte von Arrays zu vergleichen? Lassen Sie sich nicht von diesem gemeinsamen Missverständnis schaden!

Warum kann Array_diff_key () nicht verwendet werden, um Werte von Arrays zu vergleichen? Lassen Sie sich nicht von diesem gemeinsamen Missverständnis schaden!

M66 2025-07-18

In PHP ist Verarbeitungsarrays ein sehr wichtiger Bestandteil der täglichen Entwicklung. Oft begegnen wir Situationen, in denen wir zwei Arrays vergleichen müssen, und die Funktion array_diff_key () ist eine der gängigen Methoden, mit denen Arrayschlüsselnamen in PHP verglichen werden. Es findet verschiedene Schlüsselwertpaare heraus, indem es die Schlüsselnamen des Arrays verglichen, aber einige Entwickler haben seine Funktionalität missverstanden und glauben, dass es verwendet werden kann, um die Werte des Arrays zu vergleichen. Lassen Sie uns heute dieses Missverständnis klarstellen.

Was ist die Funktion array_diff_key () ?

array_diff_key () ist eine Funktion in PHP, die Arrayschlüsselnamen vergleicht. Es gibt eine Reihe von Elementen zurück, die im ersten Array enthalten sind, jedoch nicht in anderen Arrays. Beachten Sie, dass hier ein Vergleich basiert, der auf dem Schlüsselnamen basiert, nicht auf dem Wert.

Funktionsprototyp:

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

Parameterbeschreibung:

  • $ array1 : Das erste Array, das verglichen wird.

  • $ Array2, ... $ Arrays : Ein oder mehrere andere Arrays, die mit dem ersten Array verglichen werden müssen.

Rückgabewert:

  • Gibt ein Element zurück, das alle Schlüsselnamen in $ array1 enthält, die in anderen Arrays nicht vorhanden sind.

Beispielcode:

 $array1 = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry'
];

$array2 = [
    'a' => 'apple',
    'd' => 'date'
];

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

Ausgabe:

 Array
(
    [b] => banana
    [c] => cherry
)

In diesem Beispiel gibt Array_Diff_key () die Elemente zurück, die den Schlüsselnamen B und C entsprechen, indem die Schlüsselnamen des Array $ array1 und $ array2 verglichen werden. Dies zeigt an, dass die Schlüssel B und C in $ array2 nicht existieren.

Missverständnisse: Array_Diff_key () wird verwendet, um Array -Werte zu vergleichen

Viele Entwickler glauben fälschlicherweise, dass Array_diff_key () verwendet wird, um die Werte eines Arrays zu vergleichen, was offensichtlich falsch ist. Angenommen, Sie möchten beispielsweise die Teile der beiden Arrays mit unterschiedlichen Werten finden. Möglicherweise haben Sie array_diff_key () falsch verwendet, aber tatsächlich konzentriert es sich nur auf die Schlüsselnamen des Arrays.

Fehlerbeispiel:

 $array1 = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry'
];

$array2 = [
    'a' => 'apple',
    'b' => 'blueberry',
    'c' => 'cherry'
];

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

Ausgabe:

 Array
(
    [b] => banana
    [c] => cherry
)

Dieses Ergebnis spiegelt nicht den Unterschied in den Array -Werten wider, wird jedoch nur basierend auf dem Schlüsselnamen verglichen. Die Funktion array_diff_key () verglichen keine Werte im Array, sodass sie den gewünschten Effekt nicht erreicht.

Methoden zum korrekten Vergleich von Array -Werten

Wenn Sie die Werte von zwei Arrays anstelle von Schlüsselnamen vergleichen möchten, können Sie die Funktion array_diff () verwenden. Array_Diff () vergleicht die Werte des Arrays und gibt verschiedene Elemente in den beiden Arrays zurück.

Verwenden Sie Array_Diff (), um Werte zu vergleichen:

 $array1 = ['apple', 'banana', 'cherry'];
$array2 = ['apple', 'blueberry', 'cherry'];

$result = array_diff($array1, $array2);
print_r($result);

Ausgabe:

 Array
(
    [1] => banana
)

In diesem Beispiel gibt Array_Diff () einen Teil mit verschiedenen Werten zurück (hier Banane ), anstatt die Schlüsselnamen zu vergleichen.

Zusammenfassen

array_diff_key () ist eine Funktion, die basierend auf Arrayschlüsselnamen vergleicht und nicht zum Vergleich von Array -Werten verwendet wird. Wenn Sie die Werte von zwei Arrays vergleichen möchten, sollten Sie die Funktion array_diff () anstelle von array_diff_key () verwenden. Durch das Verständnis ihrer Verwendung und Unterschiede kann es Ihnen helfen, Code effizienter zu schreiben und zu vermeiden, dass sie in gemeinsame Missverständnisse geraten.

Ich hoffe, dieser Artikel kann Ihnen helfen, die Rolle von Array_diff_key () besser zu verstehen und zu vermeiden, dass Missbrauch in der tatsächlichen Entwicklung Fehler macht! Wenn Sie Fragen haben oder andere Array -Funktionen von PHP weiter untersuchen möchten, können Sie gerne fragen.