En programmation PHP, il est très courant de déterminer si deux tableaux sont cohérents. Surtout lors du traitement des données de soumission de formulaire, il est souvent nécessaire de vérifier les données soumises par l'utilisateur. Dans ce cas, il est nécessaire de comparer si les deux tableaux sont identiques. Ci-dessous, nous présentons plusieurs méthodes pour déterminer si deux tableaux sont cohérents.
Méthode 1 : Utiliser la fonction de comparaison de tableaux
PHP fournit plusieurs fonctions pour comparer des tableaux, telles que array_diff(), array_intersect(), etc. Pour déterminer si deux tableaux sont cohérents, vous pouvez utiliser la fonction array_diff_assoc(). La fonction de cette fonction est de trouver la différence entre deux tableaux, mais sa particularité est que lors de la comparaison si deux éléments sont identiques, non seulement les valeurs mais également les noms de clés sont comparés. Le format spécifique est le suivant :
array_diff_assoc ( array $array1 , array $array2 [, array $... ] ) : array
Parmi eux, array1 et array2 sont les deux tableaux à comparer. Si les deux tableaux sont identiques, un tableau vide est renvoyé, sinon les éléments du tableau1 qui sont différents du tableau2 sont renvoyés. . Voici un exemple de code :
$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male'); $array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male'); if(array_diff_assoc($array1, $array2)==NULL) { echo "两个数组相同"; } else { echo "两个数组不相同"; }
Dans ce code, deux tableaux $array1 et $array2 sont d'abord définis, puis la fonction array_diff_assoc() est utilisée pour comparer les deux tableaux, et enfin il est jugé si les deux tableaux sont les même en fonction du résultat de retour de la fonction. Si les deux tableaux sont identiques, le résultat renvoyé est NULL, sinon les éléments des deux tableaux différents sont renvoyés.
Méthode 2 : Utiliser le parcours en boucle
En plus d'utiliser la fonction de comparaison de tableaux, vous pouvez également comparer deux tableaux en les parcourant en boucle. L'idée est de comparer respectivement les clés et les valeurs des deux tableaux. Si les noms de clé et les valeurs de clé sont identiques, les deux tableaux sont considérés comme identiques. Voici un exemple de code :
$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male'); $array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male'); $flag = true; //假设两个数组相同 foreach($array1 as $key=>$value) { if(!isset($array2[$key]) || $array2[$key]!=$value) { $flag = false; //标识为不相同 break; } } if($flag) { echo "两个数组相同"; } else { echo "两个数组不相同"; }
Dans ce code, deux tableaux $array1 et $array2 sont définis, puis il parcourt tous les éléments du tableau $array1 pour déterminer si leurs clés et valeurs sont les mêmes que celles du tableau $array1. Tableau $array2. Deux tableaux sont considérés comme différents si l'une des clés ou valeurs est différente. Enfin, on juge si les deux tableaux sont identiques en fonction du drapeau $flag.
Méthode 3 : Comparaison de sérialisation
Un autre moyen simple et efficace de comparer deux tableaux consiste d'abord à les convertir en chaînes via la sérialisation, puis à les comparer. Le code spécifique est le suivant :
$array1 = array('name'=>'Tom', 'age'=>23, 'gender'=>'male'); $array2 = array('name'=>'Tom', 'age'=>24, 'gender'=>'male'); if(serialize($array1)==serialize($array2)) { echo "两个数组相同"; } else { echo "两个数组不相同"; }
Après avoir converti les deux tableaux en chaînes à l'aide de la fonction serialize(), utilisez l'opérateur "==" pour la comparaison. Si les deux chaînes sont identiques, cela signifie que les deux tableaux le sont. le même. L'avantage de cette méthode est qu'elle est simple et pratique, mais en raison de la nécessité de sérialisation et de comparaison de chaînes, elle peut légèrement affecter l'efficacité de l'exécution.
Pour résumer, il existe de nombreuses méthodes pour comparer deux tableaux, et vous pouvez choisir la méthode la plus appropriée en fonction de la situation réelle. Quelle que soit la méthode utilisée, vous devez vous assurer que les noms de clé et les valeurs de clé des deux tableaux sont cohérents avant la comparaison, sinon les résultats de la comparaison seront déviés.
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!