Les tableaux PHP ont-ils une intersection ?
En PHP, vous devez parfois effectuer certaines opérations sur les tableaux. L'une des opérations courantes consiste à déterminer si deux tableaux ont une intersection. Si deux tableaux se croisent, alors ils ont au moins un élément en commun. Cette opération est très courante dans le développement réel. Par exemple, dans le système d'enregistrement des utilisateurs, il est nécessaire de déterminer si l'adresse e-mail saisie par l'utilisateur a été enregistrée par d'autres utilisateurs ou dans le système de gestion des stocks de produits, il est nécessaire de déterminer si l'adresse e-mail saisie par l'utilisateur a été enregistrée par d'autres utilisateurs. déterminer si un certain produit a été acheté par d'autres commandes.
En PHP, il existe de nombreuses façons de déterminer si deux tableaux se croisent. Cet article en présentera plusieurs.
PHP fournit la fonction array_intersect, qui peut être utilisée pour comparer l'intersection de deux ou plusieurs tableaux. Son utilisation est la suivante :
$array1 = array('a', 'b', 'c', 'd'); $array2 = array('c', 'd', 'e', 'f'); $result = array_intersect($array1, $array2); print_r($result);
La sortie est la suivante :
Array ( [2] => c [3] => d )
Cette fonction renvoie un tableau dont les éléments sont l'intersection des deux tableaux d'entrée. Dans cet exemple, l'intersection des tableaux d'entrée $array1 et $array2 est le tableau array('c', 'd') .
En plus de la fonction array_intersect, PHP fournit également la fonction array_intersect_key. Contrairement à la fonction array_intersect, la fonction array_intersect_key compare les valeurs clés du tableau, pas les valeurs elles-mêmes. Son utilisation est la suivante :
$array1 = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4); $array2 = array('c' => 3, 'd' => 4, 'e' => 5, 'f' => 6); $result = array_intersect_key($array1, $array2); print_r($result);
La sortie est la suivante :
Array ( [c] => 3 [d] => 4 )
Cette fonction renvoie un tableau dont les éléments sont l'intersection des clés des deux tableaux d'entrée. Dans cet exemple, l'intersection des clés des tableaux d'entrée $array1 et $array2 est le tableau array('c' => 3, 'd' => 4) .
Une autre méthode consiste à utiliser deux boucles foreach pour comparer les valeurs des deux tableaux. Son utilisation est la suivante :
$array1 = array('a', 'b', 'c', 'd'); $array2 = array('c', 'd', 'e', 'f'); $result = false; foreach ($array1 as $value1) { foreach ($array2 as $value2) { if ($value1 == $value2) { $result = true; break 2; } } } if ($result) { echo '两个数组有交集'; } else { echo '两个数组没有交集'; }
Dans le code ci-dessus, nous définissons d'abord la valeur de $result sur false , indiquant que les deux tableaux n'ont pas d'intersection. Utilisez ensuite deux boucles foreach pour parcourir respectivement les deux tableaux. Si les mêmes éléments sont trouvés, définissez la valeur de $result sur true et utilisez l'instruction break 2 pour sortir des deux boucles. Enfin, le résultat est généré en fonction de la valeur de $result.
En plus des fonctions présentées ci-dessus, PHP fournit également la fonction array_intersect_ukey. Semblable à la fonction array_intersect_key, la fonction array_intersect_ukey compare les valeurs clés du tableau, mais elle nécessite le passage d'une fonction de rappel supplémentaire pour comparer les deux clés. Son utilisation est la suivante :
$array1 = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4); $array2 = array('C' => 3, 'D' => 4, 'e' => 5, 'f' => 6); $result = array_intersect_ukey($array1, $array2, 'strcasecmp'); print_r($result);
La sortie est la suivante :
Array ( [c] => 3 [d] => 4 )
Cette fonction renvoie un tableau dont les éléments sont l'intersection des clés des deux tableaux d'entrée. Dans cet exemple, l'intersection des clés des tableaux d'entrée $array1 et $array2 est le tableau array('c' => 3, 'd' => 4) . Notez que nous avons transmis une fonction de rappel 'strcasecmp' qui est utilisée pour comparer les clés sans tenir compte de la casse.
Résumé
Cet article présente diverses méthodes en PHP pour déterminer si deux tableaux se croisent, notamment array_intersect, array_intersect_key, deux boucles foreach et la fonction array_intersect_ukey. Dans le développement réel, nous pouvons choisir la méthode appropriée en fonction de la situation spécifique afin d'obtenir les meilleures performances et efficacité.
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!