Maison >développement back-end >Problème PHP >Comment déterminer s'il y a des données en double dans un tableau en php

Comment déterminer s'il y a des données en double dans un tableau en php

PHPz
PHPzoriginal
2023-04-18 10:25:171569parcourir

En PHP, déterminer si une valeur dans un tableau contient des données en double est une tâche courante. Il existe de nombreuses solutions à ce problème. Dans cet article, nous présenterons quelques méthodes pour déterminer si les valeurs d'un tableau sont des doublons.

Méthode 1 : utilisez la fonction array_unique()

Nous pouvons utiliser la fonction array_unique() en PHP pour supprimer les valeurs en double dans le tableau, puis comparer les longueurs des tableaux pour déterminer s'il existe des valeurs en double dans le tableau.

Par exemple, si nous avons le tableau suivant :

$arr = array('apple', 'banana', 'cherry', 'apple');

Nous pouvons utiliser la fonction array_unique() pour supprimer les valeurs en double comme suit :

$unique_arr = array_unique($arr);

Utilisez la fonction count() pour obtenir la longueur du tableau d'origine et le tableau après déduplication :

if(count($arr) != count($unique_arr)) {
    echo '数组中有重复数据。';
} else {
    echo '数组中没有重复数据。';
}

Cette méthode peut détecter rapidement s'il y a des valeurs en double dans le tableau.

Méthode 2 : utilisez la fonction in_array()

La fonction in_array() peut rechercher une certaine valeur dans le tableau Si elle est trouvée, elle renvoie vrai, sinon elle renvoie faux. Nous pouvons utiliser cette fonction pour rechercher une valeur dans un tableau dans une boucle afin de déterminer si la valeur est un doublon.

Par exemple, si nous avons le tableau suivant :

$arr = array('apple', 'banana', 'cherry', 'apple');

Nous pouvons utiliser la fonction in_array() pour déterminer s'il y a des valeurs en double dans le tableau, comme indiqué ci-dessous :

$flag = false;
foreach ($arr as $value) {
    if(in_array($value, $arr, true)) {
        $flag = true;
        break;
    }
}
if($flag) {
    echo '数组中有重复数据。';
} else {
    echo '数组中没有重复数据。';
}

Si la fonction in_array() trouve une valeur qui est déjà apparue dans le tableau, puis définissez la variable $flag sur true et enfin jugez la valeur de la variable $flag pour déterminer s'il existe des valeurs en double.

Méthode 3 : utilisez la fonction array_count_values()

La fonction array_count_values() peut compter le nombre d'occurrences de chaque valeur dans le tableau. Nous pouvons utiliser cette fonction pour compter le nombre d'occurrences de chaque valeur dans un tableau et trouver des valeurs récurrentes.

Par exemple, si nous avons le tableau suivant :

$arr = array('apple', 'banana', 'cherry', 'apple');

Nous pouvons utiliser la fonction array_count_values() pour compter le nombre de fois où chaque valeur apparaît dans le tableau, comme indiqué ci-dessous :

$counts = array_count_values($arr);
foreach ($counts as $key => $value) {
    if($value > 1) {
        echo '数组中有重复数据:' . $key . '<br>';
    }
}

Cette méthode compte les valeurs récurrentes et peut être facilement Rechercher des valeurs en double dans un tableau.

Méthode 4 : utilisez la fonction array_diff()

La fonction array_diff() peut comparer la différence entre deux tableaux, c'est-à-dire les valeurs qui se trouvent dans le tableau A mais pas dans le tableau B. Nous pouvons utiliser cette fonction pour comparer le tableau d'origine et le tableau dédupliqué.

Par exemple, si nous avons le tableau suivant :

$arr = array('apple', 'banana', 'cherry', 'apple');

Nous pouvons utiliser la fonction array_diff() pour comparer le tableau d'origine et le tableau dédupliqué, comme indiqué ci-dessous :

$temp_arr = array_unique($arr);
$diff_arr = array_diff($arr, $temp_arr);
if(!empty($diff_arr)) {
    echo '数组中有重复数据。';
} else {
    echo '数组中没有重复数据。';
}

Cette méthode générera un tableau de différence, si le le tableau n'est pas S'il est vide, cela signifie qu'il y a des données en double dans le tableau d'origine.

Résumé

Il existe plusieurs façons ci-dessus de déterminer s'il existe des données en double dans un tableau PHP. Chaque méthode a ses propres caractéristiques et utilisations, et nous pouvons choisir de l'utiliser en fonction de la situation spécifique.

Si vous souhaitez déterminer efficacement s'il y a des données en double dans le tableau, vous pouvez envisager d'utiliser les deux premières méthodes car leur complexité temporelle est plus petite. Si vous souhaitez rechercher des valeurs récurrentes, vous pouvez utiliser la troisième méthode. Si vous souhaitez comparer la différence entre la matrice d'origine et la matrice dédupliquée, vous pouvez utiliser la quatrième méthode.

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