Maison >développement back-end >Problème PHP >Comment supprimer les valeurs en double d'un tableau en utilisant PHP

Comment supprimer les valeurs en double d'un tableau en utilisant PHP

PHPz
PHPzoriginal
2023-04-23 10:21:36523parcourir

En PHP, le tableau est l'une des structures de données couramment utilisées. Il peut stocker plusieurs éléments, est flexible et pratique et a été largement utilisé dans le développement. Cependant, dans le développement réel, nous devons souvent effectuer certaines opérations sur les tableaux, telles que la suppression des valeurs en double. Cet article explique comment utiliser PHP pour supprimer les valeurs en double d'un tableau.

1. Principe

Méthode 1 : Utilisez la fonction array_unique

PHP fournit une fonction array_unique qui peut supprimer les valeurs en double du tableau. La syntaxe est la suivante :

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

Cette fonction accepte un tableau comme paramètre et renvoie un nouveau tableau. Les valeurs du nouveau tableau excluent les valeurs en double. ​​​​dans le tableau d'origine. Le deuxième paramètre $sort_flags est utilisé pour spécifier comment trier le tableau de sortie. Par défaut, le tableau de sortie conserve les noms de clé du tableau d'origine.

Exemple de code :

$arr = array(1,2,2,3,4,4,5);

$new_arr = array_unique($arr);

print_r($new_arr);  // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

Méthode 2 : Utiliser le parcours en boucle

En parcourant le tableau, comparez chaque élément du tableau avec les éléments suivants S'il y a les mêmes valeurs, supprimez les éléments suivants pour réaliser la fonction de déduplication.

Exemple de code :

$arr = array(1,2,2,3,4,4,5);

for($i=0;$i<count($arr);$i++){
    for($j=$i+1;$j<count($arr);$j++){
        if($arr[$i]==$arr[$j]){
            array_splice($arr,$j,1);
            $j--;
        }
    }
}

print_r($arr);  // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

2. Utilisez la méthode 1 pour supprimer les valeurs en double dans le tableau

Nous utilisons la fonction array_unique mentionnée ci-dessus pour implémenter la fonction de déduplication. L'exemple de code est le suivant :

$arr = array(1,2,2,3,4,4,5);
$new_arr = array_unique($arr);
print_r($new_arr);  // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

3. .Utilisez la méthode 2 pour supprimer les valeurs en double dans le tableau

Nous utilisons la méthode de boucle dans le tableau pour supprimer les valeurs en double dans le tableau. L'exemple de code est le suivant :

$arr = array(1,2,2,3,4,4,5);

for($i=0;$i<count($arr);$i++){
    for($j=$i+1;$j<count($arr);$j++){
        if($arr[$i]==$arr[$j]){
            array_splice($arr,$j,1);
            $j--;
        }
    }
}

print_r($arr);  // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

4. La complexité temporelle des deux méthodes est respectivement O(n) et O (n^2), la première méthode a une complexité temporelle inférieure et de meilleures performances. Par conséquent, dans le développement réel, nous devrions essayer de choisir la méthode 1 pour implémenter la déduplication de tableau afin d'améliorer les performances du programme.

5. Résumé

Cet article présente deux méthodes pour supprimer les valeurs en double​​dans les tableaux en PHP. Grâce à la comparaison, on peut constater que la méthode 1 a une complexité temporelle inférieure et de meilleures performances. Toutefois, dans certains cas précis, la méthode 2 peut être plus adaptée. Dans le développement réel, nous devons faire des choix basés sur les conditions réelles pour améliorer l'efficacité du programme.

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