Maison > Article > développement back-end > PHP compare les tableaux pour voir s'ils sont identiques
En PHP, comparer des tableaux pour voir s'ils sont identiques est une opération très courante. Normalement, pour comparer deux tableaux et voir s’ils sont identiques, même si leurs éléments sont dans un ordre différent, il faut les trier puis les comparer un par un. Ce n'est pas difficile à faire, mais cela prend du temps.
En PHP, il existe de nombreuses méthodes simples pour comparer des tableaux et voir s'ils sont identiques. Ci-dessous, nous présentons quelques méthodes couramment utilisées. La fonction
array_diff() compare deux tableaux et renvoie les éléments qui sont présents dans le premier tableau mais pas dans le deuxième tableau. Si les deux tableaux sont exactement égaux, un tableau vide est renvoyé.
L'exemple est le suivant :
$array1 = array('a', 'b', 'c'); $array2 = array('a', 'b', 'd'); $res = array_diff($array1, $array2); if (empty($res)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Le code ci-dessus affichera "les deux tableaux ne sont pas égaux". En effet, l'élément « c » du tableau $array1 n'existe pas dans $array2. La fonction
array_diff_assoc() compare deux tableaux et renvoie les éléments qui sont présents dans le premier tableau mais pas dans le deuxième tableau, et compare également les clés de ces éléments.
L'exemple est le suivant :
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'); $array2 = array('a' => 'apple', 'b' => 'orange', 'c' => 'cherry'); $res = array_diff_assoc($array1, $array2); if (empty($res)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Le code ci-dessus affichera "les deux tableaux ne sont pas égaux". En effet, l'élément « banane » du tableau $array1 n'existe pas dans $array2 et la clé « b » est également différente. La fonction
array_diff_key() compare deux tableaux et renvoie les clés des éléments qui sont présents dans le premier tableau mais pas dans le deuxième tableau. La différence avec array_diff() est que array_diff_key() compare uniquement les clés du tableau, pas les valeurs correspondant aux clés.
L'exemple est le suivant :
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'); $array2 = array('a' => 'apple', 'b' => 'orange', 'd' => 'mango'); $res = array_diff_key($array1, $array2); if (empty($res)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Le code ci-dessus affichera "les deux tableaux ne sont pas égaux". En effet, la clé « c » du tableau $array1 n'existe pas dans $array2 et la clé « d » est également différente. La fonction
array_uintersect_assoc() compare deux tableaux et renvoie les éléments présents dans les deux tableaux, tout en comparant également les clés de ces éléments. Correspond à array_diff_assoc().
L'exemple est le suivant :
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'); $array2 = array('a' => 'apple', 'b' => 'orange', 'c' => 'cherry'); function compare($a, $b) { if ($a === $b) { return 0; } return ($a < $b) ? -1 : 1; } $res = array_uintersect_assoc($array1, $array2, 'compare'); if (count($res) === count($array1) && count($res) === count($array2)) { echo '两个数组相等'; } else { echo '两个数组不相等'; }
Le code ci-dessus affichera "les deux tableaux ne sont pas égaux". En effet, la clé « b » du tableau $array2 correspond à une valeur différente.
Les fonctions ci-dessus sont toutes des fonctions intégrées à PHP et peuvent être facilement comparées. Mais il est important de noter que lors de la comparaison de tableaux, les types d'éléments ne sont pas comparés par défaut. Si vous devez comparer les types d'éléments, vous pouvez utiliser des fonctions avec des rappels définis par l'utilisateur tels que array_diff_uassoc() et spécifier la méthode de comparaison de type dans la fonction de comparaison personnalisée.
Comparer si les tableaux sont identiques en PHP n'est pas un problème compliqué. En fonction des différents besoins, différentes méthodes peuvent être choisies.
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!