Maison  >  Article  >  développement back-end  >  Comment supprimer les doublons d'un tableau en php

Comment supprimer les doublons d'un tableau en php

PHPz
PHPzoriginal
2023-04-26 10:20:541062parcourir

En langage PHP, si nous devons supprimer les doublons d'un tableau, il existe plusieurs manières différentes d'atteindre cet objectif. Cet article présentera quelques méthodes et techniques pour vous aider à supprimer les doublons de n'importe quel tableau PHP.

  1. Utilisez la fonction array_unique()

La fonction array_unique() de PHP peut supprimer tous les doublons du tableau à la fois. Cette fonction accepte un tableau comme argument et renvoie un tableau unique contenant uniquement les valeurs distinctes du tableau d'origine. Par exemple, l'extrait de code suivant montre comment utiliser la fonction array_unique() pour supprimer les doublons dans le tableau $numbers :

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_unique($numbers);
print_r($unique_numbers);

La sortie de ce code sera : Array ( [0] => 1 [1] => ; 2 [2] => 3 [4] => 4 [6] => 5 )

Veuillez noter que les noms de clés dans le tableau renvoyé peuvent être différents du tableau d'origine. Si vous devez réorganiser le tableau en fonction des noms de clés d'origine, utilisez la fonction array_values() comme ceci :

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_values(array_unique($numbers));
print_r($unique_numbers);

Ce code génère le même résultat, mais dans ce cas, l'ordre des clés dans le tableau est le même, ce qui est : Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

  1. Utilisez la boucle et la fonction in_array()

Lorsque la fonction array_unique() n'est pas disponible, nous pouvons utiliser les fonctions loop et in_array() pour obtenir manuellement la même fonctionnalité. La fonction in_array() recherche une valeur dans le tableau et renvoie la valeur booléenne correspondante. En utilisant une boucle combinée avec la fonction in_array(), nous pouvons parcourir tout le tableau et enregistrer uniquement les valeurs qui ne sont pas dans le nouveau tableau.

Par exemple, l'extrait de code suivant montre comment utiliser cette technique :

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array();
foreach($numbers as $n) {
  if (!in_array($n, $unique_numbers)) {
    $unique_numbers[] = $n;
  }
}
print_r($unique_numbers);

Le résultat de ce code sera également : Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => 5 ).

Veuillez noter que l'inconvénient de cette approche est qu'elle nécessite plus de code et de temps de traitement que l'utilisation de la fonction array_unique().

  1. Utilisation des fonctions array_flip() et array_keys()

Une autre façon de supprimer les doublons dans un tableau consiste à utiliser les fonctions array_flip() et array_keys(). La fonction array_flip() renvoie un nouveau tableau. Les clés du nouveau tableau sont les valeurs du tableau d'origine et les valeurs sont les noms des clés du tableau d'origine. En utilisant cette méthode, nous pouvons supprimer toutes les clés liées aux valeurs en double dans le tableau d'origine.

Ensuite, nous pouvons utiliser la fonction array_keys() pour renvoyer un tableau avec les doublons exclus.

Le code suivant montre comment utiliser cette méthode :

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_keys(array_flip($numbers));
print_r($unique_numbers);

La sortie de ce code sera : Array ( [0] => 1 [1] => 2 [2] => 3 [3] = > 4 [4] => 5 )

Veuillez noter que cette méthode ne fonctionne que pour les tableaux de nombres ou de chaînes.

Résumé

Quelle que soit la méthode que vous choisissez, supprimer les doublons d'un tableau PHP est simple. Comme cet article l'explique, vous pouvez y parvenir en utilisant la fonction array_unique(), les boucles et les fonctions in_array(), array_flip() et array_keys(). En fin de compte, la méthode à choisir peut dépendre du problème que vous essayez de résoudre et de la version de PHP que vous utilisez dans votre code de production.

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