Maison > développement back-end > Problème PHP > PHP compare les tableaux pour l'égalité

PHP compare les tableaux pour l'égalité

WBOY
Libérer: 2023-05-07 14:44:09
original
519 Les gens l'ont consulté

PHP est un langage de programmation puissant et largement utilisé. Il fournit de nombreuses fonctions et méthodes liées aux tableaux, permettant aux développeurs d'effectuer facilement diverses opérations sur les tableaux. Lorsque nous utilisons des tableaux, nous devons souvent comparer si deux tableaux sont égaux. Cet article présentera comment PHP compare l'égalité des tableaux, ainsi que certaines compétences pratiques associées.

  1. Utilisez l'opérateur ==

Vous pouvez utiliser l'opérateur "==" en PHP pour comparer si deux tableaux sont égaux. Deux tableaux sont considérés comme égaux lorsqu'ils ont les mêmes paires clé-valeur et que les paires clé-valeur sont dans le même ordre. Par exemple :

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Copier après la connexion

Le résultat de sortie est "deux tableaux sont égaux" car $arr1 et $arr2 ont les mêmes paires clé-valeur et l'ordre de ces paires clé-valeur est également le même.

Cependant, il convient de noter que l'opérateur "==" compare uniquement si les clés et les valeurs du tableau sont égales, il ne compare pas le type du tableau. Par exemple :

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Copier après la connexion

Le résultat de sortie est "deux tableaux sont égaux", bien que les types de $arr1 et $arr2 soient différents. En effet, l'opérateur "==" compare uniquement les clés et les valeurs pour l'égalité, pas les types.

  1. Utilisez l'opérateur ===

Si vous souhaitez comparer les clés, les valeurs et les types du tableau pour l'égalité au en même temps, vous devez utiliser l'opérateur "== =". Par exemple :

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 === $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Copier après la connexion

Le résultat de sortie est "les deux tableaux ne sont pas égaux" car les types de $arr1 et $arr2 sont différents.

  1. Fonction de comparaison personnalisée

Dans certains cas, nous pouvons avoir besoin de comparer si les clés et les valeurs du tableau sont égales, mais la paire clé-valeur L'ordre peut être différent. À ce stade, vous pouvez utiliser la fonction usort() de PHP et une fonction de comparaison personnalisée pour y parvenir. Par exemple :

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
Copier après la connexion

Le résultat de sortie est "Deux tableaux sont égaux" car nous avons utilisé la fonction usort() et la fonction de comparaison personnalisée cmp() pour trier et comparer les deux tableaux.

  1. Notes

Lorsque vous comparez des tableaux, vous devez également faire attention aux éléments suivants :

    #🎜 🎜#If Si un tableau contient un autre tableau avec les mêmes paires clé-valeur mais dans un ordre différent, ils sont considérés comme des tableaux différents.
  • Si le même nom de clé existe dans deux tableaux, mais que les valeurs des clés sont différentes, elles sont considérées comme des tableaux différents.
  • Lorsque vous utilisez une fonction de comparaison personnalisée, vous devez vous assurer que la valeur de retour de la fonction est 0, 1 ou -1 afin d'effectuer la comparaison correctement.
    Exemple pratique
Ce qui suit est un exemple pratique utilisant plusieurs méthodes pour comparer des tableaux en termes d'égalité : #🎜🎜 #
<?php
// 比较数组是否相等
$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

// 方法一:使用“==”运算符
if ($arr1 == $arr2) {
    echo '方法一:两个数组相等';
} else {
    echo '方法一:两个数组不相等';
}

echo '<br>';

// 方法二:使用“===”运算符
if ($arr1 === $arr2) {
    echo '方法二:两个数组相等';
} else {
    echo '方法二:两个数组不相等';
}

echo '<br>';

// 方法三:使用usort()函数和自定义比较函数
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '方法三:两个数组相等';
} else {
    echo '方法三:两个数组不相等';
}
?>
Copier après la connexion

Après avoir exécuté le code ci-dessus, les résultats suivants seront affichés :

方法一:两个数组相等
方法二:两个数组不相等
方法三:两个数组相等
Copier après la connexion

Summary
  1. En PHP, comparez les tableaux pour l'égalité est une tâche très courante. Nous pouvons utiliser l'opérateur "==" pour comparer si les clés et les valeurs du tableau sont égales, et l'opérateur "===" pour comparer si les clés, les valeurs et les types du tableau sont égaux. utilisez également la fonction usort() et la fonction de comparaison personnalisée pour comparer. Lorsque vous comparez des tableaux, vous devez également faire attention à savoir si le même nom de clé et la même valeur de clé existent dans le tableau, et si l'ordre des paires clé-valeur est le même. Avec la méthode ci-dessus, vous pouvez facilement comparer l'égalité des tableaux, améliorant ainsi la lisibilité et la maintenabilité de votre code.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal