Comment supprimer les doublons d'un tableau trié en PHP

PHPz
Libérer: 2023-04-26 14:12:23
original
543 Les gens l'ont consulté

Dans le développement PHP, il est souvent nécessaire de trier les tableaux, mais des éléments en double peuvent apparaître dans le tableau trié. À ce stade, nous devons écrire du code pour supprimer les éléments en double du tableau. Cet article va vous montrer comment supprimer les doublons d'un tableau trié en PHP.

1. Utilisez la fonction array_unique()

La fonction array_unique() peut supprimer les éléments en double dans le tableau. Cependant, il convient de noter que cette fonction ne peut gérer que les tableaux non triés, nous devons donc utiliser sort() ou Functions. tels que les tableaux de tri rsort().

Exemple de code :

$arr = array(1, 2, 2, 3, 4, 4, 5);
sort($arr);//排序
$newArr = array_unique($arr);//去重
print_r($newArr);
Copier après la connexion

Résultat de sortie :

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

Si vous devez conserver les noms de clé du tableau d'origine, vous pouvez utiliser le deuxième paramètre de la fonction array_unique() :

$arr = array('a' => 1, 'b' => 2, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 4, 'g' => 5);
asort($arr);//排序
$newArr = array_unique($arr, SORT_REGULAR);//去重
print_r($newArr);
Copier après la connexion

Résultat de sortie :

Array ( [a] => 1 [b] => 2 [d] => 3 [e] => 4 [g] => 5 )
Copier après la connexion

2 . Parcourez le tableau pour supprimer les doublons Item

Une autre façon de supprimer les doublons dans un tableau trié consiste à parcourir le tableau et lorsqu'un élément en double est trouvé, utilisez la fonction unset() pour supprimer l'élément du tableau.

Exemple de code :

$arr = array(1, 2, 2, 3, 4, 4, 5);
sort($arr);//排序
for($i=0;$i<count($arr)-1;$i++){
    if($arr[$i] == $arr[$i+1]){
        unset($arr[$i+1]);//删除重复元素
    }
}
print_r($arr);
Copier après la connexion

Résultat de sortie :

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

Il convient de noter que l'utilisation de cette méthode pour supprimer des éléments entraînera la réorganisation de l'index du tableau d'origine, vous devez donc utiliser l'index de $i+1 lorsque suppression, sinon il sera manqué Supprimer les éléments en double.

3. Utilisez la récursivité du tableau pour dédupliquer

Si le tableau est multidimensionnel, nous pouvons utiliser la récursivité pour dédupliquer.

Exemple de code :

$arr = array(
    1,
    2,
    2,
    array(
        3,
        4,
        4,
        5,
        array(
            6,
            7,
            7,
        ),
    ),
);
sort($arr);//排序
function uniqueArray($arr){
    foreach($arr as $k => $v){
        if(is_array($v)){
            $arr[$k] = uniqueArray($v);
        }
    }
    return array_unique($arr);
}
$newArr = uniqueArray($arr);//递归去重
print_r($newArr);
Copier après la connexion

Résultat de sortie :

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

Cette méthode peut dédupliquer des tableaux multidimensionnels et conserver la structure du tableau d'origine.

Conclusion

Dans le développement PHP, la suppression des éléments en double dans un tableau trié est une opération très courante. Cet article présente trois méthodes : utiliser la fonction array_unique(), parcourir le tableau à supprimer et dédupliquer le tableau de manière récursive. Différentes méthodes conviennent à différentes situations, et chacun peut choisir la méthode qui lui convient en fonction de ses propres besoins.

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