Maison  >  Article  >  développement back-end  >  Comment supprimer les doublons du tableau php

Comment supprimer les doublons du tableau php

PHPz
PHPzoriginal
2023-04-23 10:05:55801parcourir

PHP, 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!

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