Comment supprimer les données en double d'un tableau en php

PHPz
Libérer: 2023-04-24 10:17:36
original
3947 Les gens l'ont consulté

En programmation PHP, nous rencontrons souvent des situations où nous devons supprimer les données en double d'un tableau. Cet article présentera plusieurs méthodes couramment utilisées pour résoudre ce problème.

Méthode 1 : utilisez la fonction array_unique

La fonction array_unique est la fonction intégrée de PHP, qui peut supprimer les éléments en double d'un tableau et renvoyer un nouveau tableau. Cette fonction conservera le nom de la clé, mais réinitialisera le nom de la clé, c'est-à-dire que le nom de la clé d'origine ne sera pas conservé. L'exemple est le suivant :

$array = array(1, 2, 3, 3, 4, 5, 5);
$new_array = array_unique($array);
print_r($new_array);
Copier après la connexion

Sortie :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 4
    [5] => 5
)
Copier après la connexion

Méthode 2 : Utiliser la boucle pour supprimer les doublons

Cette méthode est plus directe. Elle parcourt le tableau et vérifie si l'élément actuel est apparu à chaque fois. , ajoutez-le à un nouveau tableau, sinon ignoré. L'exemple est le suivant :

$array = array(1, 2, 3, 3, 4, 5, 5);
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}
print_r($new_array);
Copier après la connexion

Sortie :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Copier après la connexion
Copier après la connexion

Méthode 3 : Utilisez les fonctions array_flip et array_keys

Cette méthode est plus intelligente. Utilisez array_flip pour échanger les clés et les valeurs dans le tableau, supprimez les valeurs en double, puis utilisez array_keys pour obtenir les clés dans la clé du tableau d'origine. L'exemple est le suivant :

$array = array(1, 2, 3, 3, 4, 5, 5);
$array = array_flip($array);
$array = array_flip($array);
print_r(array_keys($array));
Copier après la connexion

Sortie :

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 4
    [4] => 5
)
Copier après la connexion

Il est à noter que cette méthode réinitialisera le nom de la clé, et le premier élément apparaissant sera conservé après suppression des doublons, donc le nom de clé du premier élément deviendra 0 .

Méthode 4 : Utilisez la fonction array_reduce

Cette méthode utilise la fonction array_reduce pour parcourir le tableau du début à la fin. Chaque élément est vérifié pour voir s'il est apparu, il est ajouté à un nouveau tableau. . Un exemple est le suivant :

$array = array(1, 2, 3, 3, 4, 5, 5);
$new_array = array_reduce($array, function($carry, $item) {
    if (!in_array($item, $carry)) {
        $carry[] = $item;
    }
    return $carry;
}, array());
print_r($new_array);
Copier après la connexion

Sortie :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Copier après la connexion
Copier après la connexion

Il convient de noter que cette méthode doit implémenter une fonction de rappel comme deuxième paramètre. La fonction de cette fonction de rappel est de parcourir le tableau et de renvoyer un nouveau tableau comme deuxième paramètre. résultat.

Conclusion

Il existe de nombreuses façons de supprimer les données en double des tableaux en PHP, mais l'efficacité et la lisibilité ne sont pas les mêmes. Choisir la méthode la plus appropriée en fonction de la situation réelle peut améliorer l'efficacité et la maintenabilité 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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal