Position actuelle: Accueil> Derniers articles> Array_diff_key () conservera-t-il l'ordre clé du tableau d'origine?

Array_diff_key () conservera-t-il l'ordre clé du tableau d'origine?

M66 2025-06-06

Dans PHP, array_diff_key () est une fonction très utile qui peut être utilisée pour comparer deux tableaux ou plus, renvoyant un nouveau tableau qui contient toutes les paires de valeurs clés dans le premier tableau, et ces touches n'existent pas dans d'autres tableaux. Cela nous permet de supprimer les éléments du tableau par les clés. Ensuite, nous explorerons une question: Lorsque vous utilisez array_diff_key () , l'ordre clé du tableau d'origine sera-t-il préservé?

1. Utilisation de base de l' array_diff_key ()

Tout d'abord, passons en revue l'utilisation de base de array_diff_key () :

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

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

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

print_r($result);
?>

Sortir:

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

Dans cet exemple, Array_Diff_Key () compare deux Arrays Array1 et Array2 et renvoie un tableau contenant des paires de valeurs clés dans Array1 , à condition que les clés n'apparaissent pas dans Array2 . La sortie finale est un nouveau tableau, seules les clés de Array1 qui n'apparaissent pas dans Array2 sont conservées.

2. Ordre clé du tableau d'origine

Donc, la question est la suivante: array_diff_key () conserve l'ordre clé du tableau d'origine? La réponse est: oui . PHP conserve l'ordre des clés dans le tableau d'origine lors de l'utilisation de Array_Diff_Key () .

Vérifions cela avec le code suivant:

 <?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>";
?>

Sortir:

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

Notez que le nouveau tableau renvoyé par array_diff_key () conserve toujours l'ordre des clés A et C. Même si ces clés ont été comparées dans Array2 , l'ordre des clés dans Array1 reste non affecté. De cette façon, nous pouvons confirmer que Array_Diff_Key () ne réorganise pas le tableau, mais est conservé dans l'ordre clé du tableau d'origine.

3. Pourquoi l'ordre est-il préservé?

En effet, dans PHP, l'ordre des tableaux (pour les tableaux associatifs) est déterminé par l'ordre d'insertion. Lorsque Array_Diff_Key () est exécuté, PHP se compare en fonction de l'existence des clés, mais ne change pas l'ordre de ces clés. Par rapport aux opérations de valeur du tableau, array_diff_key () traite principalement des clés, donc garder l'ordre des clés est le comportement de conception de PHP.

4. Conclusion

Pour résumer, array_diff_key () conserve l'ordre clé du tableau d'origine. Quelle que soit la façon dont le tableau est comparé, l'ordre clé dans le tableau d'origine est conservé dans le résultat, ce qui nous permet de compter sur array_diff_key () de supprimer avec précision les éléments et de préserver l'ordre des données.

J'espère que cet article peut vous aider à mieux comprendre le comportement de la fonction array_diff_key () en php! Si vous avez d'autres questions, n'hésitez pas à poser.