Maison >développement back-end >Problème PHP >Que se passe-t-il lors de la comparaison de tableaux en PHP

Que se passe-t-il lors de la comparaison de tableaux en PHP

PHPz
PHPzoriginal
2023-04-19 09:22:26708parcourir

Array est un type de données très important en PHP. Il est largement utilisé dans divers scénarios, tels que le stockage de données, la transmission de paramètres, etc. Dans de nombreux cas, nous devons comparer deux tableaux ou plus pour déterminer s’ils sont égaux. Alors, que se passe-t-il lors de la comparaison de tableaux en PHP ?

Il existe deux opérateurs pour comparer des tableaux en PHP, à savoir "==" et "===". Les résultats de comparaison de ces deux opérateurs sont différents. Examinons d'abord les règles de comparaison de l'opérateur "==".

Lors de la comparaison de deux tableaux à l'aide de l'opérateur "==", il compare chaque élément du tableau un par un. Plus précisément, il compare d’abord si le nombre d’éléments dans les deux tableaux est égal. Si les nombres sont égaux, comparez chaque élément un par un, sinon false est renvoyé directement. Lors de la comparaison des éléments, si un élément d'un tableau est égal à n'importe quel élément d'un autre tableau, les deux éléments sont considérés comme égaux. L'égalité mentionnée ici signifie que les deux éléments ont la même valeur clé et la même valeur. Ils ne sont égaux que si la valeur clé et la valeur sont identiques.

Voici un exemple qui démontre le processus de comparaison de deux tableaux à l'aide de l'opérateur "==" :

$arr1 = array("apple", "banana", "orange");
$arr2 = array(" banane ", "orange", "apple");

if ($arr1 == $arr2) {

echo "Two arrays are equal.";

} else {

echo "Two arrays are not equal.";

}

Le résultat de sortie est "Deux tableaux ne sont pas égaux.". En effet, bien que le tableau $arr1 et le tableau $arr2 contiennent les mêmes éléments, mais dans des ordres différents, ils ne sont pas égaux selon la règle de comparaison de l'opérateur "==".

Ensuite, jetons un coup d'œil aux règles de comparaison de l'opérateur « === ».

Lorsque vous utilisez l'opérateur "===" pour comparer deux tableaux, il comparera d'abord si les références des deux tableaux sont égales, c'est-à-dire si elles pointent vers le même tableau. S'il ne s'agit pas du même tableau, renvoyez directement false ; sinon, comparez chaque élément pour vérifier son égalité selon les règles de l'opérateur "==".

Ce qui suit est un exemple pour illustrer l'utilisation de l'opérateur "===".

$arr1 = array("pomme", "banane", "orange");
$arr2 = array("pomme", "banane", "orange");
$arr3 = &$arr1;

if ($arr1 === $arr2) {

echo "Two arrays are equal.";

} else {

echo "Two arrays are not equal.";

}

if ($arr1 === $arr3) {

echo "Two arrays are the same.";

} else {

echo "Two arrays are not the same.";

}

Le résultat de sortie est " Deux tableaux ne sont pas égaux." et "Deux tableaux sont identiques." En effet, bien que $arr1 et $arr2 contiennent les mêmes éléments, ils ne constituent pas le même tableau ; $arr1 et $arr3 sont le même tableau et pointent vers le même espace mémoire.

Dans la programmation réelle, nous devons choisir d'utiliser l'opérateur "==" ou "===" en fonction de la situation réelle. Si nous devons comparer les valeurs des éléments, les noms des clés et l'ordre dans le tableau, nous devons utiliser l'opérateur "==" si nous devons comparer si le tableau est exactement le même, y compris les références, les valeurs des éléments, les noms des clés et l'ordre ; , nous devrions utiliser le symbole d'opérateur "===".

Enfin, il convient de noter que lors de la comparaison de tableaux, si le tableau contient un objet, leurs résultats de comparaison sont déterminés par cet objet. Étant donné que la comparaison d'objets en PHP est basée sur des références, si l'objet a des références différentes dans deux tableaux, les deux tableaux seront considérés comme inégaux.

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