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);
Résultat de sortie :
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
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);
Résultat de sortie :
Array ( [a] => 1 [b] => 2 [d] => 3 [e] => 4 [g] => 5 )
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);
Résultat de sortie :
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
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);
Résultat de sortie :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [6] => 5 [9] => 6 [10] => 7 )
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!