Aktueller Standort: Startseite> Neueste Artikel> array_diff_assoc () Kann das Ignorieren des Schlüsselnamens den erwarteten Effekt erzielen?

array_diff_assoc () Kann das Ignorieren des Schlüsselnamens den erwarteten Effekt erzielen?

M66 2025-06-07

In PHP ist Array_diff_assoc () eine häufig verwendete Funktion, die zwei Arrays vergleicht und die Differenz zwischen ihnen zurückgibt. Diese Funktion vergleicht nicht nur die Werte des Arrays, sondern auch die Schlüsselnamen des Arrays. Daher haben viele Entwickler bei der Verwendung eine Frage: Wenn wir beim Vergleich der Arrays die Schlüsselnamen ignorieren, können wir die erwarteten Ergebnisse erzielen?

In diesem Artikel wird einige Beispiele verwendet, um zu untersuchen, ob das Ignorieren des Schlüsselnamens bei Verwendung von Array_Diff_assoc () das erwartete Ergebnis tatsächlich erzielen kann.

Wie Array_Diff_assoc () funktioniert

Erstens ist es sehr wichtig, die grundlegende Verwendung von Array_Diff_assoc () zu verstehen. Diese Funktion vergleicht die Schlüssel und Werte von zwei Arrays und gibt ein Array zurück, das die Differentialwerte enthält. Es ist zu beachten, dass Array_diff_assoc () die Gleichheit von Schlüsselnamen und -werten überprüft, sodass es nicht nur darum geht, Werte zu vergleichen.

 <?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "blueberry", "d" => "date");

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

Ausgangsergebnis:

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

In diesem Beispiel vergleicht Array_diff_assoc () die Schlüsselnamen und -Werte der beiden Arrays und gibt Elemente zurück, die in Array Array1, jedoch nicht in Array2 , enthalten sind.

Ignorieren Sie die Schlüsselnamen

Manchmal möchten Entwickler ihre Werte vergleichen, ohne die Schlüsselnamen im Array beim Vergleich zu berücksichtigen. In diesem Fall erfüllt Array_Diff_assoc () die Anforderung nicht, da sie gleichzeitig die Schlüsselnamen und -werte vergleicht. Wenn Sie die Schlüsselnamen ignorieren und nur die Werte vergleichen möchten, sollten Sie array_diff () verwenden.

Beispiel: Ignorieren Sie den Vergleich der Schlüsselnamen

Angenommen, wir haben zwei Arrays mit unterschiedlichen Schlüsselnamen, aber dieselben Werten:

 <?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("x" => "apple", "y" => "banana", "z" => "cherry");

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

Ausgangsergebnis:

 Array
(
)

Die Funktion array_diff () wird hier verwendet, und das Ergebnis ist ein leeres Array, da Array_Diff () nur die Werte des Array vergleicht und Array Array1 und Array2 die gleichen Werte enthalten. Im Gegensatz zu Array_Diff_assoc () berücksichtigt Array_Diff () den Schlüsselnamen nicht, sodass er den Differenz des Schlüsselnamens ignoriert und das erwartete Ergebnis erhält.

abschließend

Wie aus dem obigen Beispiel ersichtlich ist, ist Array_diff_assoc () nicht die am besten geeignete Wahl, wenn wir die Schlüsselnamen ignorieren und nur die Werte des Arrays vergleichen möchten. Im Gegenteil, Array_Diff () ist das richtige Tool, um diese Funktion zu implementieren. array_diff_assoc () ist immer noch sehr nützlich, wenn es erforderlich ist, sowohl den Schlüsselnamen als auch den Wertdifferenz zu berücksichtigen. Wenn Sie sich jedoch nur um die Differenz des Werts kümmern und den Schlüsselnamen ignorieren, ist es angemessener, Array_diff () zu verwenden.

Zusammenfassend kann Array_diff_assoc () den Schlüsselnamen nicht ignorieren. Wenn Sie also den Schlüsselnamen ignorieren müssen, sollten Sie array_diff () anstelle von array_diff_assoc () auswählen.