Maison >développement back-end >Problème PHP >PHP implémente la suppression des doublons dans le tableau

PHP implémente la suppression des doublons dans le tableau

WBOY
WBOYoriginal
2023-05-05 21:19:07671parcourir

PHP est un langage de script open source largement utilisé dans la programmation Web et est idéal pour une utilisation avec HTML pour générer des pages Web dynamiques.

En programmation PHP, les tableaux sont souvent utilisés pour stocker des données. Cependant, dans le développement réel, il peut y avoir des éléments en double dans le tableau, ce qui affectera l'exactitude et l'efficacité du programme. Par conséquent, réaliser la déduplication des tableaux est un problème important dans le développement PHP.

Ce qui suit présentera plusieurs méthodes pour réaliser la déduplication de tableau en PHP.

1. Utilisez une boucle

Le moyen le plus simple est d'utiliser une boucle pour parcourir le tableau, de comparer chaque élément avec l'élément qui le suit et de supprimer l'élément qui le suit s'il est dupliqué. La complexité de cette opération est O(n^2), ce qui n'est pas très efficace.

Le code est le suivant :

$arr = array(1,2,3,3,4,5,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--; //删除元素后,数组长度减1,需要将指针向前移一位
        }
    }
}

print_r($arr); //输出结果为 [1,2,3,4,5]

2. Utiliser la fonction array_unique

PHP fournit la fonction intégrée array_unique(), qui peut effectuer directement des opérations de déduplication sur les tableaux. Cette fonction renvoie un nouveau tableau dans lequel chaque élément n'apparaît qu'une seule fois.

Le code est le suivant :

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

$new_arr = array_unique($arr); //去重

print_r($new_arr); //输出结果为 [1,2,3,4,5]

Cette méthode est simple et facile à utiliser et relativement efficace, mais veuillez noter que cette fonction ne peut supprimer que les éléments de même valeur, pas exactement les mêmes éléments.

3. Utilisez les fonctions array_flip et array_keys

array_flip() pour retourner les clés et les valeurs dans le tableau et renvoyer un nouveau tableau, où la valeur du tableau d'origine est la clé du nouveau tableau et la clé est la valeur du nouveau tableau. Les clés du nouveau tableau étant uniques, vous pouvez directement utiliser la fonction array_keys() pour obtenir les clés permettant de réaliser la déduplication.

Le code est le suivant :

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

$new_arr = array_flip($arr); //翻转数组的键和值
$new_arr = array_keys($new_arr); //获取新数组的键,即为去重后的结果

print_r($new_arr); //输出结果为 [1,2,3,4,5]

Cette méthode est similaire à array_unique(). Elle ne peut supprimer que des éléments de même valeur, mais elle est plus rapide et adaptée au traitement de grandes quantités de données.

4. Utilisez les boucles et la fonction in_array

Lors d'une boucle dans le tableau, utilisez la fonction in_array() pour déterminer si l'élément actuel apparaît parmi les éléments qui ont été traités. Si c'est le cas, supprimez l'élément actuel.

Le code est le suivant :

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

$new_arr = array(); //新数组用于存储不重复的元素

foreach($arr as $value){ 
    if(!in_array($value,$new_arr)){ //判断当前元素是否已经存在于新数组中
        $new_arr[] = $value; //若不存在,则添加至新数组
    }
}

print_r($new_arr); //输出结果为 [1,2,3,4,5]

Cette méthode est également de complexité O(n^2), mais elle est plus efficace que la méthode 1 et convient au traitement de données de petite et moyenne taille.

En résumé, il existe de nombreuses façons d'implémenter la déduplication de tableau en PHP. La méthode à choisir doit être choisie en fonction de la situation réelle. Dans le même temps, nous devons prêter attention à l’efficacité et à l’exactitude de l’algorithme, ainsi qu’à la simplicité et à la lisibilité du code.

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