Maison  >  Article  >  développement back-end  >  Résoudre le problème de la modification de l'ordre des éléments après la déduplication dans les tableaux PHP

Résoudre le problème de la modification de l'ordre des éléments après la déduplication dans les tableaux PHP

WBOY
WBOYoriginal
2024-04-29 08:33:01524parcourir

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.

解决 PHP 数组去重后元素顺序变化的问题

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 : 🎜🎜🎜Utilisez array_intersect_key() 🎜🎜
$unique_array = array_unique($array); // ['green', 'blue', 'orange', 'red']
🎜🎜Utilisez 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']
🎜🎜Utilisez 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 : 🎜rrreee

Ce 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn