Maison >développement back-end >Problème PHP >Comment vérifier s'il y a des doublons dans un tableau en php

Comment vérifier s'il y a des doublons dans un tableau en php

PHPz
PHPzoriginal
2023-04-26 10:23:51903parcourir

En PHP, vérifier un tableau pour les valeurs en double est une tâche basique. Dans cet article, nous allons explorer comment vérifier s'il y a des valeurs en double dans un tableau en PHP et proposer des solutions.

1. Utiliser les fonctions intégrées de PHP

PHP possède de nombreuses fonctions intégrées utiles qui peuvent facilement résoudre les problèmes de tableau en PHP. Voici l'une de ces fonctions :

array_unique() — Supprimez les doublons d'un tableau

Si votre objectif est d'éliminer complètement les valeurs en double, cette méthode est très simple. Il renvoie un nouveau tableau contenant uniquement des valeurs uniques. S'il y a un problème de tri, vous pouvez utiliser la fonction sort() pour trier.

Par exemple :

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

Sortie :

Array (
      [0] => 1
      [1] => 2
      [3] => 3
      [4] => 4
      [7] => 5
    )

Comme indiqué ci-dessus, nous venons de passer le tableau précédent dans la fonction array_unique() et de dédupliquer les mêmes valeurs. Mais cette méthode ne convient que pour éliminer complètement les valeurs en double. array_unique()函数,并且对相同的值进行了去重。但这个方法只适用于完全消除重复值的情况下。

二、使用PHP循环

如果你需要找到数组中所有的重复值,可能最好的选择是使用循环。以下是一种使用 PHP 循环查找重复值的方法:

$array = array(2, 5, 6, 2, 8, 5, 1);
 
$result_array = array();
foreach ($array as $val) {
    $result_array[$val] = isset($result_array[$val]) ? ++$result_array[$val] : 1;
}
 
foreach ($result_array as $key => $val) {
    if ($val > 1) {
        echo "{$key} 重复了{$val}次 <br>";
    }
}

输出:

2 重复了2次
5 重复了2次

在上面的代码中,我们使用一个循环来遍历数组,并将每个元素用作结果数组的关键字。如果一个键被接管了,那么它被自增,每次出现一个键。如果有任何键被重复了很多次,那么我们可以通过另一个循环来输出这个元素以及出现的次数。

三、使用PHP count()函数

有时候,我们需要快速检查一个数组中是否有重复值,并且不需要移除重复值。在这种情况下,我们可以使用 PHP 的 count() 函数。

下面是这种方法的示例:

$array = array(2, 5, 6, 2, 8, 5, 1);
 
if (count($array) === count(array_unique($array))) {
    echo "没有重复值";
} else {
    echo "有重复值";
}

输出:

有重复值

在上面的代码中,我们使用array_unique()函数来去重,然后用count()函数检查两个数组的大小是否相同。如果它们是相同并且数组内没有重复值,那么count($array) === count(array_unique($array))

2. Utilisez des boucles PHP

Si vous avez besoin de trouver toutes les valeurs en double dans un tableau, la meilleure option est probablement d'utiliser une boucle. Voici un moyen de trouver les valeurs en double à l'aide d'une boucle PHP :

$array = array(2, 5, 6, 2, 8, 5, 1);

$splObj = new SplObjectStorage();

foreach ($array as $value) {
    $splObj->attach($value);
}

if (count($array) === $splObj->count()) {
    echo "没有重复值";
} else {
    echo "有重复值";
}
Sortie :
    rrreee
  1. Dans le code ci-dessus, nous utilisons une boucle pour parcourir le tableau et utilisons chaque élément comme clé pour le tableau résultant. Si une clé est reprise, elle est incrémentée une clé à la fois. Si une clé est répétée plusieurs fois, nous pouvons alors passer une autre boucle pour afficher cet élément avec le nombre d'occurrences.
  2. 3. Utilisez la fonction PHP count()
  3. Parfois, nous devons vérifier rapidement s'il y a des valeurs en double dans un tableau sans supprimer les valeurs en double. Dans ce cas, nous pouvons utiliser la fonction count() de PHP.
Voici un exemple de cette approche :

rrreee

Sortie :

rrreee

Dans le code ci-dessus, nous utilisons la fonction array_unique() pour supprimer les doublons, puis utilisons la fonction count() pour vérifier si les deux tableaux sont identiques taille. S'ils sont identiques et qu'il n'y a pas de valeurs en double dans le tableau, alors count($array) === count(array_unique($array)) est évalué à true. 🎜🎜Conclusion🎜🎜Vérifier s'il y a des valeurs en double dans un tableau peut être une tâche courante en PHP. Dans cet article, nous avons discuté de trois façons de vérifier s'il y a des valeurs en double dans un tableau PHP : 🎜🎜🎜À l'aide de la fonction intégrée PHP array_unique(), vous pouvez supprimer les valeurs en double d'un tableau. 🎜🎜En utilisant la boucle PHP, vous pouvez trouver toutes les valeurs en double. 🎜🎜Utilisez la fonction PHP count() pour vérifier rapidement s'il y a des valeurs en double dans un tableau. 🎜🎜🎜De plus, des effets similaires peuvent également être obtenus en utilisant des méthodes de collection, il suffit d'utiliser la classe SplObjectStorage intégrée à PHP. Enfin, un morceau de code qui utilise la classe SplObjectStorage pour vérifier les valeurs en double est fourni pour votre référence : 🎜rrreee🎜Ce qui précède est une méthode pour utiliser PHP pour vérifier s'il y a des valeurs en double dans un tableau, j'espère. cela vous sera utile. 🎜

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