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

WBOY
Libérer: 2024-04-29 08:33:01
original
522 Les gens l'ont consulté

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));
Copier après la connexion

使用 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];
}
Copier après la connexion

使用 array_values()array_unique()

$array = ['a', 'b', 'c', 'a', 'd'];

$unique_array = array_values(array_unique($array));
Copier après la connexion

实战案例

假设我们有一个包含重复值的数组:

$array = ['red', 'green', 'blue', 'red', 'orange'];
Copier après la connexion

使用 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']
Copier après la connexion
🎜🎜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']
Copier après la connexion
🎜🎜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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!