Maison >développement back-end >Problème PHP >Comment vérifier s'il y a des doublons dans un tableau en php
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))
$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
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, alorscount($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!