Comment déterminer si les numéros de tableau sont répétés en PHP et comment supprimer les doublons

PHPz
Libérer: 2023-04-23 09:41:54
original
1147 Les gens l'ont consulté

Dans le développement quotidien, nous rencontrons souvent le besoin de déterminer si les numéros de tableau sont répétés et de les supprimer, notamment lors du traitement des données de formulaire, des données statistiques, etc. Cet article présentera plusieurs façons de déterminer si les numéros de tableau sont répétés et comment les supprimer en PHP.

1. Utilisez les fonctions count et array_unique

En PHP, vous pouvez utiliser la fonction count pour compter le nombre d'éléments du tableau, et la fonction array_unique peut supprimer les éléments en double dans le tableau. En utilisant ces deux fonctions ensemble, vous pouvez déterminer si les nombres du tableau sont répétés et les supprimer.

Exemple de code :

$arr = array(1,3,2,3,4,1,5);//测试数组
$count = count($arr);//统计数组元素的个数
$unique_count = count(array_unique($arr));//去重后的数组元素个数
if($count == $unique_count){
    echo '数组中没有重复的数字';
} else {
    echo '数组中有重复的数字';
}
Copier après la connexion

Le résultat de sortie est :

数组中有重复的数字
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

2. Utilisez la fonction in_array

La fonction in_array en php est utilisée pour déterminer si un élément est dans un tableau. Vous pouvez utiliser la fonction in_array pour parcourir le tableau et déterminer s'il contient des éléments en double.

Exemple de code :

$arr = array(1,3,2,3,4,1,5);//测试数组
$repeat_flag = false;// 判断数组中是否存在重复元素的标志
for($i=0;$i<count($arr)-1;$i++){
    for($j=$i+1;$j<count($arr);$j++){
        if($arr[$i] == $arr[$j]) {// 数组中存在重复元素
            $repeat_flag = true;
            break;// 跳出循环
        }
    }
}
if($repeat_flag){
    echo &#39;数组中有重复的数字&#39;;
} else {
    echo &#39;数组中没有重复的数字&#39;;
}
Copier après la connexion

Le résultat de sortie est :

数组中有重复的数字
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

3. Utilisez la fonction array_count_values ​​​​

La fonction array_count_values ​​​​en php peut compter le nombre des mêmes éléments dans le tableau et renvoyer un tableau associatif, où les clés représentent les éléments du tableau. Valeur, la valeur représente le nombre de fois que l'élément apparaît dans le tableau. Vous pouvez utiliser la fonction array_count_values ​​​​pour compter le nombre d'occurrences de chaque élément du tableau. Si un élément apparaît supérieur à 1, cela signifie que l'élément est répété.

Exemple de code :

$arr = array(1,3,2,3,4,1,5);//测试数组
$n_arr = array_count_values($arr);// 利用array_count_values函数统计数组中每个元素出现次数
$repeat_flag = false;// 判断数组中是否存在重复元素的标志
foreach($n_arr as $n){
    if($n>1) {// 数组中存在重复元素
        $repeat_flag=true;
        break;// 跳出循环
    }
}
if($repeat_flag){
    echo '数组中有重复的数字';
} else {
    echo '数组中没有重复的数字';
}
Copier après la connexion

Le résultat de sortie est :

数组中有重复的数字
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

4. Utilisez les fonctions array_flip et array_keys

La fonction array_flip en php peut échanger les clés et les valeurs du tableau et renvoyer un nouveau tableau. Combinées avec la fonction array_keys, les valeurs du nouveau tableau peuvent être utilisées comme clés dans le tableau d'origine pour déterminer s'il existe des éléments en double dans le tableau d'origine.

Exemple de code :

$arr = array(1,3,2,3,4,1,5);//测试数组
$new_arr = array_flip($arr);// 利用array_flip函数交换数组中的键和值
$repeat_flag=false;// 判断数组中是否存在重复元素的标志
foreach(array_keys($new_arr) as $k){// 将新数组中的值作为原数组中的键
    if(count($arr)-count(array_keys($arr,$k))>1){// 判断原数组中是否存在重复元素
        $repeat_flag=true;// 存在重复元素
        break;
    }
}
if($repeat_flag){
    echo '数组中有重复的数字';
} else {
    echo '数组中没有重复的数字';
}
Copier après la connexion

Le résultat de sortie est :

数组中有重复的数字
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

5. Utilisez les fonctions array_unique et array_diff pour déterminer s'il y a des éléments en double dans le tableau

La fonction array_diff en php peut calculer l'ensemble des différences du tableau et renvoyer le tableau de différence. En combinaison avec la fonction array_unique, vous pouvez déterminer la différence entre le tableau d'origine et le tableau dédupliqué, puis déterminer s'il existe des éléments en double dans le tableau d'origine.

Exemple de code :

$arr = array(1,3,2,3,4,1,5);//测试数组
$unique_arr = array_unique($arr);// 利用array_unique函数去重
$diff_arr = array_diff($arr,$unique_arr);// 计算原数组与去重后的数组的差集,并返回差集数组
if(!empty($diff_arr)){// 差集不为空,说明原数组中存在重复元素
    echo '数组中有重复的数字';
} else {
    echo '数组中没有重复的数字';
}
Copier après la connexion

Le résultat de sortie est :

数组中有重复的数字
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Voici plusieurs méthodes d'implémentation ci-dessus pour déterminer si les numéros de tableau sont répétés et les dédupliquer en PHP. Différentes méthodes ont leurs propres avantages et inconvénients. Nous pouvons choisir la méthode appropriée en fonction de la situation réelle pour obtenir de meilleurs résultats.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!