Dans PHP, lors de l'utilisation de la fonction Array_Unique () pour dédupliquer un tableau, il peut faire changer l'ordre des éléments du tableau. Bien que les doublons soient supprimés du tableau, l'ordre d'origine peut être perturbé, affectant le comportement attendu du programme.
Afin de préserver l'ordre des éléments du tableau après la déduplication, les développeurs peuvent choisir les méthodes suivantes:
Cette méthode préserve l'ordre d'origine des éléments par intersection.
$array
= ['a', 'b', 'c', 'a', 'd'];
$unique_array
=
array_intersect_key
(
$array
,
array_unique
(
$array
));
En renversant d'abord les valeurs clés du tableau, puis en reconstruisant le tableau, vous pouvez effectivement déduir et préserver l'ordre des éléments.
$array
= ['a', 'b', 'c', 'a', 'd'];
$seen_keys
=
array_flip
(
$array
);
foreach
(
$seen_keys
as
$key
=>
$val
) {
$unique_array
[
$key
] =
$array
[
$key
];
}
Cette méthode garantit que l'ordre est préservé par déduplication d'abord, puis réindexant le tableau via array_values () .
$array
= ['a', 'b', 'c', 'a', 'd'];
$unique_array
=
array_values
(
array_unique
(
$array
));
Supposons que nous ayons un tableau contenant des valeurs en double:
$array
= ['red', 'green', 'blue', 'red', 'orange'];
Après avoir utilisé Array_Unique () pour dédupliquer, l'ordre des éléments changera:
$unique_array
=
array_unique
(
$array
);
À ce stade, l'ordre des éléments deviendra: [«vert», «bleu», «orange», «rouge»] .
Grâce aux plusieurs méthodes mentionnées ci-dessus, nous pouvons nous assurer que l'ordre des éléments du tableau est préservé:
$unique_array_intersect
=
array_intersect_key
(
$array
,
array_unique
(
$array
));
Le résultat est: [«rouge», «vert», «bleu», «orange»] .
Cet article présente trois méthodes courantes pour résoudre le problème du changement de séquence après la déduplication des tableaux PHP. Que ce soit en utilisant array_intersect_key () ou en combinant array_flip () et array_values () , il peut résoudre efficacement le problème de la perte de commande Array. Espérons que ces solutions pourront aider les développeurs à traiter plus efficacement les tableaux de PHP.