Maison  >  Article  >  développement back-end  >  Comment déterminer si deux tableaux sont dupliqués en php

Comment déterminer si deux tableaux sont dupliqués en php

PHPz
PHPzoriginal
2023-04-19 10:09:39950parcourir

Dans le développement PHP, il est courant de déterminer si deux tableaux ont des doublons. Cet article présentera deux méthodes pour répondre à cette exigence.

Méthode 1 : Utiliser la fonction array_intersect

Parmi les fonctions de tableau officiellement fournies par PHP, il existe une fonction appelée array_intersect, qui peut être utilisée pour comparer si deux tableaux ont des éléments en double.

L'exemple de code est le suivant :

$array1 = array(1, 2, 3, 4, 5);
$array2 = array(4, 5, 6, 7, 8);

$result = array_intersect($array1, $array2);

if(count($result) > 0) {
    echo "存在重复元素";
} else {
    echo "不存在重复元素";
}

Analyse :

  1. Tout d'abord, définissez deux tableaux $array1 et $array2, chacun contenant des nombres
  2. Ensuite, utilisez la fonction array_intersect pour comparer les deux tableaux ; le résultat Si le nombre d'éléments dans le tableau est supérieur à 0, cela signifie que les deux tableaux ont des éléments en double
  3. Sinon, cela signifie que les deux tableaux n'ont aucun élément en double ;
  4. Il convient de noter que lorsque vous utilisez la fonction array_intersect, vous devez vous assurer que les types d'éléments dans les deux tableaux sont cohérents. Si les éléments d’un tableau sont des chaînes et que les éléments de l’autre tableau sont des nombres, la comparaison échouera également.

Méthode 2 : Utiliser la comparaison de boucles

Si vous ne souhaitez pas introduire une nouvelle fonction pour déterminer si deux tableaux ont des éléments en double, vous pouvez également utiliser une boucle pour réaliser cette fonction.

L'exemple de code est le suivant :

$array1 = array(1, 2, 3, 4, 5);
$array2 = array(4, 5, 6, 7, 8);

$hasRepeat = false;

foreach ($array1 as $value1) {
    foreach ($array2 as $value2) {
        if ($value1 == $value2) {
            $hasRepeat = true;
            break;
        }
    }
}

if ($hasRepeat) {
    echo "存在重复元素";
} else {
    echo "不存在重复元素";
}

Analyse :

Tout d'abord, définissez deux tableaux $array1 et $array2, qui contiennent respectivement des nombres 
  1. Ensuite, utilisez deux boucles foreach pour parcourir les deux tableaux ; Dans la boucle, utilisez l'instruction if pour comparer si les deux éléments actuels sont égaux ;
  2. S'ils sont égaux, cela signifie que les deux tableaux ont des éléments en double, définissez la variable $hasRepeat sur true et sortez de la boucle ;
  3. Si la boucle se termine, $hasRepeat Si la variable est toujours fausse, cela signifie qu'il n'y a pas d'éléments en double dans les deux tableaux.
  4. Il convient de noter que lors de l'utilisation de la comparaison de boucles, la complexité temporelle sera relativement élevée car deux niveaux de boucles doivent être imbriqués. Si le nombre d'éléments dans les deux tableaux est important, les performances peuvent être affectées.
  5. Résumé

Déterminer si deux tableaux ont des éléments en double est une exigence courante dans le développement PHP. Cet article présente deux méthodes d'implémentation, l'une consiste à utiliser la fonction array_intersect et l'autre consiste à utiliser la comparaison de boucles. Différentes méthodes doivent être choisies en fonction de la situation spécifique.

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