Comment supprimer les doublons du tableau php
Apr 23, 2023 am 10:05 AMPHP, en tant que langage de programmation populaire, fournit des méthodes de fonctionnement de tableau pratiques et efficaces, dans lesquelles la suppression des éléments en double est une exigence courante. Cet article présentera plusieurs méthodes pour implémenter la déduplication de tableau PHP et analysera en profondeur leurs avantages et inconvénients.
1. Utilisez la fonction array_unique
Le moyen le plus simple est d'utiliser la fonction intégrée de PHP array_unique(). Cette fonction renverra un nouveau tableau après la déduplication et ne modifiera pas le tableau d'origine. Voici un exemple de code :
$array = array('apple', 'banana', 'orange', 'banana', 'pear'); $new_array = array_unique($array); print_r($new_array);
Le résultat de sortie est :
Array ( [0] => apple [1] => banana [2] => orange [4] => pear )
array_unique() la fonction utilise un algorithme de table de hachage, qui est très efficace, mais si les types d'éléments du tableau sont incohérents, les résultats seront imprévisibles. De plus, cette fonction ne peut pas gérer les clés des tableaux associatifs, mais uniquement les tableaux numériques. Dans certains cas, d'autres approches doivent donc être envisagées.
2. Utilisez les boucles et la fonction in_array
La deuxième méthode consiste à utiliser les boucles et la fonction in_array() pour supprimer manuellement les doublons. La fonction in_array() peut vérifier si une valeur existe déjà dans le tableau. Voici l'exemple de code :
$array = array('apple', 'banana', 'orange', 'banana', 'pear'); $new_array = array(); foreach ($array as $value) { if (!in_array($value, $new_array)) { $new_array[] = $value; } } print_r($new_array);
Le résultat est le même que celui de la première méthode. Cette méthode a une meilleure flexibilité que la fonction array_unique() et peut gérer les clés des tableaux associatifs, mais elle nécessite l'écriture manuelle du code de boucle, ce qui est relativement gênant et peut être moins efficace s'il y a de nombreux éléments du tableau.
3. Utilisez les fonctions array_flip et array_keys
La troisième méthode consiste à utiliser les fonctions array_flip() et array_keys(), qui sont utilisées respectivement pour échanger les clés et les valeurs du tableau, et renvoyer un nouveau tableau de toutes les clés du tableau. Le but de l'utilisation de ces deux fonctions est de convertir le tableau d'origine en un tableau numérique, puis d'utiliser la fonction array_unique(). Voici l'exemple de code :
$array = array('apple', 'banana', 'orange', 'banana', 'pear'); $new_array = array_unique(array_keys(array_flip($array))); print_r($new_array);
Le résultat est le même que celui des deux premières méthodes. Cette méthode est plus concise que la deuxième méthode et ne modifie pas le tableau d'origine, mais elle nécessite deux opérations supplémentaires, ce qui peut avoir un impact négatif sur les performances.
4. Utilisez la récursion et la fonction array_merge
La dernière méthode consiste à utiliser la récursion et la fonction array_merge() pour dédupliquer les tableaux multidimensionnels. Cette méthode peut gérer des tableaux de dimensions arbitraires. Voici l'exemple de code :
$array = array('apple', 'banana', array('orange', 'banana'), 'pear'); $new_array = array(); function array_recursive_unique($array) { global $new_array; foreach ($array as $value) { if (is_array($value)) { array_recursive_unique($value); } else { if (!in_array($value, $new_array)) { $new_array[] = $value; } } } } array_recursive_unique($array); print_r($new_array);
Le résultat est :
Array ( [0] => apple [1] => banana [2] => orange [3] => pear )
L'avantage de cette méthode est qu'elle peut gérer des tableaux de dimensions arbitraires et ne nécessite pas de fonctions supplémentaires. Mais cela nécessite l’écriture manuelle de code récursif, ce qui est relativement lourd et inefficace. Pour les grands tableaux, la durée d’exécution peut être très longue.
En résumé, cet article présente quatre méthodes courantes pour réaliser la déduplication de tableau PHP. L’utilisation de la fonction array_unique() est la plus simple et la plus facile à comprendre, mais elle ne peut pas gérer les clés des tableaux associatifs. Vous pouvez gérer n'importe quel type de tableau à l'aide de boucles et de la fonction in_array(), mais vous devez écrire le code de la boucle manuellement. Travailler avec des clés de tableaux associatifs fonctionne bien en utilisant les fonctions array_flip() et array_keys(), mais nécessite des opérations supplémentaires. Des tableaux de dimensions arbitraires peuvent être traités à l'aide de la récursion et de la fonction array_merge(), mais l'écriture manuelle de code récursif ou l'utilisation de tableaux à grande échelle peuvent entraîner des problèmes d'efficacité. La méthode appropriée doit être sélectionnée en fonction des besoins réels et de scénarios spécifiques.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP

Quelles sont les dernières normes de codage PHP et les meilleures pratiques?

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé?

Comment puis-je travailler avec les extensions de PHP et PECL?

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP?

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance?

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP

Comment utiliser la réflexion pour analyser et manipuler le code PHP?
