Maison  >  Article  >  développement back-end  >  php supprime les valeurs en double du tableau

php supprime les valeurs en double du tableau

王林
王林original
2023-05-07 10:15:07436parcourir

Dans le processus de programmation, nous rencontrons souvent le besoin de dédupliquer des tableaux. Dans ce cas, PHP fournit de nombreuses fonctions à des fins de déduplication, mais différentes fonctions ont des méthodes d'implémentation différentes, ce qui entraîne des problèmes et des dangers cachés. Ci-dessous, nous examinerons deux de ces méthodes pour vous aider à comprendre comment les utiliser correctement dans diverses situations.

Méthode 1 : utilisez la fonction array_unique()

PHP fournit la fonction array_unique(), qui peut dédupliquer le nom de la clé du tableau sans le modifier. Le paramètre de cette fonction est le tableau à dédupliquer et renvoie un nouveau tableau qui a été dédupliqué. Par exemple :

$arr = array('a'=>1,'b'=>2,'c'=>3,'d'=>2,'e'=>1);
$new_arr = array_unique($arr);
print_r($new_arr);

Le résultat de sortie est :

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

Il est très simple d'utiliser la fonction array_unique() pour supprimer les doublons. La fonction stocke tous les éléments du tableau dans une table de hachage, avec la valeur de l'élément comme clé, la première clé dans laquelle la valeur de l'élément apparaît comme clé réelle, et renvoie un nouveau tableau. Cependant, vous pouvez rencontrer les deux problèmes suivants lors de l'utilisation de cette fonction :

  1. Pour les nombres à virgule flottante, la précision peut être perdue, entraînant des comparaisons incorrectes.
  2. Pour les tableaux complexes, la fonction array_unique() peut ne pas fonctionner correctement.

Par conséquent, nous devons utiliser une autre méthode pour faire face aux deux situations ci-dessus.

Méthode 2 : utiliser le parcours en boucle

Parcourez le tableau et stockez ses éléments dans un nouveau tableau. S'il y a des éléments en double, nous ignorerons l'élément. Par exemple :

$arr = array('a'=>1,'b'=>2,'c'=>3,'d'=>2,'e'=>1);
$new_arr = array();
foreach ($arr as $value) {
    if(!in_array($value,$new_arr)){
        $new_arr[] = $value;
    }
}
print_r($new_arr);

Le résultat est :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Cette méthode convient à différents types de tableaux sans perdre en précision et peut bien gérer des tableaux complexes. Cependant, son inconvénient est qu'il est lent, surtout lorsque le nombre d'éléments du tableau est grand, l'efficacité du parcours de boucle deviendra très inefficace.

En résumé, quelle que soit la méthode que vous utilisez, vous devez choisir la méthode qui correspond le mieux à vos besoins. Si vous devez simplement dédupliquer un tableau et que vous n'avez pas à vous soucier des problèmes de précision et de complexité, alors utiliser la fonction array_unique() est le meilleur choix. Mais si vous devez traiter des tableaux complexes ou conserver les noms de clés de tableau, vous devez utiliser la méthode de parcours en boucle.

En outre, vous pouvez également envisager d'utiliser d'autres fonctions d'optimisation telles que array_diff_key() et array_intersect_key() pour mieux gérer le problème de déduplication des tableaux. Quelle que soit la méthode que vous choisissez, vous devez gérer la déduplication de la baie avec prudence afin d'éviter des problèmes potentiels.

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