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);
Sortie :
Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [5] => 5 )
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);
Sortie :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
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));
Sortie :
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 4 [4] => 5 )
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);
Sortie :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
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!