Il existe trois solutions au problème de la modification de l'ordre des éléments lors de la déduplication des tableaux PHP : utilisez array_intersect_key(), array_flip() et array() ainsi que array_values() et array_unique() pour préserver l'ordre des éléments du tableau.
Résoudre le problème de changement de l'ordre des éléments après la déduplication des tableaux PHP
Description du problème
Après la déduplication des tableaux PHP à l'aide de la fonction array_unique()
, l'ordre des éléments peuvent changer de variété. Cela peut conduire à des résultats inattendus dans certains cas. array_unique()
函数去重后,元素的顺序可能会发生变化。这可能会在某些情况下导致意外的结果。
解决方案
要保留数组元素的顺序,可以使用以下方法:
使用 array_intersect_key()
$array = ['a', 'b', 'c', 'a', 'd']; $unique_array = array_intersect_key($array, array_unique($array));
使用 array_flip()
和 array()
$array = ['a', 'b', 'c', 'a', 'd']; $unique_array = array(); $seen_keys = array_flip($array); foreach ($seen_keys as $key => $val) { $unique_array[$key] = $array[$key]; }
使用 array_values()
和 array_unique()
$array = ['a', 'b', 'c', 'a', 'd']; $unique_array = array_values(array_unique($array));
实战案例
假设我们有一个包含重复值的数组:
$array = ['red', 'green', 'blue', 'red', 'orange'];
使用 array_unique()
Solution
🎜🎜Pour conserver l'ordre des éléments du tableau, vous pouvez utiliser la méthode suivante : 🎜🎜🎜Utilisezarray_intersect_key()
🎜🎜$unique_array = array_unique($array); // ['green', 'blue', 'orange', 'red']
array_flip()
code> et array()
🎜🎜$unique_array_intersect = array_intersect_key($array, array_unique($array)); // ['red', 'green', 'blue', 'a'] $unique_array_flip = array(); $seen_keys = array_flip($array); foreach ($seen_keys as $key => $val) { $unique_array_flip[$key] = $array[$key]; } // ['red', 'green', 'blue', 'a'] $unique_array_values = array_values(array_unique($array)); // ['red', 'green', 'blue', 'orange']
array_values()
et array_unique()
🎜🎜rrreee🎜🎜Cas pratique🎜🎜🎜 Supposons que nous ayons un tableau contenant des valeurs en double : 🎜rrreee🎜Utilisez array_unique()
Après la déduplication, l'ordre des éléments change : 🎜rrreee🎜Utilisez la méthode mentionnée ci-dessus pour conserver l'ordre des éléments : 🎜rrreeeCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!