Aktueller Standort: Startseite> Neueste Artikel> Wird bei Verwendung von Array_Diff_key () die Schlüsselreihenfolge des ursprünglichen Arrays erhalten?

Wird bei Verwendung von Array_Diff_key () die Schlüsselreihenfolge des ursprünglichen Arrays erhalten?

M66 2025-06-06

In PHP ist Array_diff_key () eine sehr nützliche Funktion, mit der zwei oder mehr Arrays verglichen werden können, wodurch ein neues Array zurückgegeben wird, das alle Schlüsselwertpaare im ersten Array enthält, und diese Schlüssel existieren nicht in anderen Arrays. Auf diese Weise können wir Elemente aus dem Array durch Schlüssel entfernen. Als nächstes werden wir eine Frage untersuchen: Wenn Sie Array_Diff_key () verwenden, wird die Schlüsselreihenfolge des ursprünglichen Arrays erhalten?

1. Grundnutzung von Array_Diff_key ()

Lassen Sie uns zunächst die grundlegende Verwendung von Array_Diff_key () überprüfen:

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

$array2 = [
    'b' => 5,
    'd' => 6
];

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

print_r($result);
?>

Ausgabe:

 Array
(
    [a] => 1
    [c] => 3
)

In diesem Beispiel vergleicht Array_diff_key () zwei Arrays Array1 und Array2 und gibt ein Array zurück, das Schlüsselwertpaare in Array1 enthält, vorausgesetzt, die Tasten erscheinen nicht in Array2 . Die endgültige Ausgabe ist ein neues Array, nur die Schlüssel in Array1 , die in Array2 nicht erscheinen, bleiben erhalten.

2. Schlüsselreihenfolge des ursprünglichen Arrays

Die Frage ist also, behält Array_diff_key () die Schlüsselreihenfolge des ursprünglichen Arrays? Die Antwort lautet: Ja . PHP behält die Reihenfolge der Schlüssel im Originalarray bei, wenn Sie Array_Diff_Key () verwenden.

Überprüfen wir dies mit dem folgenden Code:

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

$array2 = [
    'b' => 5,
    'd' => 6
];

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

echo "<pre>";
print_r($result);
echo "</pre>";
?>

Ausgabe:

 Array
(
    [a] => 1
    [c] => 3
)

Beachten Sie, dass das von Array_Diff_key () zurückgegebene Neue Array die Reihenfolge von A und C -Tasten behält. Auch wenn diese Schlüssel in Array2 verglichen wurden, bleibt die Schlüsselreihenfolge in Array1 nicht betroffen. Auf diese Weise können wir bestätigen, dass Array_diff_key () das Array nicht neu ordnet, sondern in der Schlüsselreihenfolge des ursprünglichen Arrays beibehalten wird.

3. Warum ist die Bestellung erhalten?

Dies liegt daran, dass in PHP die Reihenfolge der Arrays (für assoziative Arrays) durch die Reihenfolge der Insertion bestimmt wird. Wenn array_diff_key () ausgeführt wird, vergleicht PHP basierend auf der Existenz der Schlüssel, ändert jedoch nicht die Reihenfolge dieser Schlüssel. Im Vergleich zu Array Value -Operationen befasst sich Array_diff_key () hauptsächlich mit Tasten. Daher ist das Aufbewahren der Schlüsselreihenfolge das Entwurfsverhalten von PHP.

4. Schlussfolgerung

Zusammenfassend lässt sich sagen, dass Array_Diff_key () die Schlüsselreihenfolge des ursprünglichen Arrays behält. Unabhängig davon, wie das Array verglichen wird, bleibt die Schlüsselreihenfolge im ursprünglichen Array im Ergebnis erhalten, wodurch wir uns auf Array_Diff_key () verlassen können, um Elemente genau zu entfernen und die Reihenfolge der Daten zu bewahren.

Ich hoffe, dieser Artikel kann Ihnen helfen, das Verhalten der Funktion array_diff_key () in PHP besser zu verstehen! Wenn Sie weitere Fragen haben, können Sie gerne fragen.