Maison >développement back-end >tutoriel php >Comment vérifier si deux tableaux sont égaux en PHP?

Comment vérifier si deux tableaux sont égaux en PHP?

Linda Hamilton
Linda Hamiltonoriginal
2025-02-07 11:15:09905parcourir

How to Check If Two Arrays are Equal in PHP?

Méthode de vérification de l'égalité du tableau PHP

Dans PHP, déterminer si les deux tableaux sont égaux signifie que les éléments du tableau sont les mêmes, l'ordre est cohérent et même les types de données correspondent. Cet article présentera plusieurs méthodes pour vérifier l'égalité du tableau en php:

  1. Loi sur la violence

    Cette méthode trie d'abord les deux tableaux, puis les compare à l'aide de l'opérateur ==. Trier pour garantir que l'ordre des éléments n'affecte pas les résultats de comparaison.

    Exemple:

    <code class="language-php"><?php
    $array1 = [3, 2, 1];
    $array2 = [1, 2, 3];
    
    sort($array1);
    sort($array2);
    
    if ($array1 == $array2) {
        echo "数组相等";
    } else {
        echo "数组不相等";
    }
    ?></code>

    Sortie:

    <code>数组相等</code>

    Complexité temporelle: o (n log n) Complexité de l'espace: o (1)

  2. Utilisez l'opérateur ==

    C'est un moyen de comparer directement les éléments du tableau. L'opérateur == vérifie si les deux tableaux sont de la même taille et contiennent les mêmes éléments, et l'ordre doit également être le même. Cette méthode est simple et facile à utiliser, mais elle n'est pas stricte avec les types de données. Par exemple, Integer 3 et String '3' sont considérés comme égaux.

    Exemple:

    <code class="language-php"><?php
    $arr1 = [1, 2, 3, 4];
    $arr2 = [1, 2, 3, 4];
    
    if ($arr1 == $arr2) {
        echo "数组相等";
    } else {
        echo "数组不相等";
    }
    ?></code>

    Sortie:

    <code>数组相等</code>

    Complexité temporelle: o (n) Complexité de l'espace: o (1)

  3. Utiliser array_diff() Méthodes

    Il s'agit d'une fonction intégrée pour PHP pour trouver les différences entre deux tableaux. Si array_diff() renvoie un tableau vide, cela signifie que les deux tableaux sont égaux. Cette méthode est souvent utilisée pour comparer les tableaux d'éléments désordonnés et uniques.

    Exemple:

    <code class="language-php"><?php
    $array1 = [1, 2, 3];
    $array2 = [3, 2, 1];
    
    if (empty(array_diff($array1, $array2)) && empty(array_diff($array2, $array1))) {
        echo "数组相等";
    } else {
        echo "数组不相等";
    }
    ?></code>

    Sortie:

    <code>数组相等</code>

    Complexité temporelle: o (n) Complexité de l'espace: o (n)

  4. Utilisez l'opérateur ===

    === L'opérateur effectue une comparaison stricte des éléments de tableau, il vérifie:

    • La taille des deux tableaux est-elle la même?
    • si deux tableaux contiennent les mêmes éléments doivent également être les mêmes dans l'ordre
    • Le type de données de l'élément est-il le même?

    Renvoie false si une condition n'est pas satisfaite. Cette méthode fait une comparaison plus précise en considérant les types.

    Exemple:

    <code class="language-php"><?php
    $array1 = [1, 2, 3, 4];
    $array2 = [1, 2, '3', 4];
    
    if ($array1 === $array2) {
        echo "数组相等";
    } else {
        echo "数组不相等";
    }
    ?></code>

    Sortie:

    <code>数组不相等</code>

    Complexité temporelle: o (n) Complexité de l'espace: o (1)

La méthode à choisir dépend du scénario d'application spécifique et des exigences pour la correspondance du type de données. Si une vérification de type stricte est requise, utilisez l'opérateur ===; si elle n'est pas sensible à type, utilisez l'opérateur == ou la méthode array_diff(). Pour les tableaux non ordonnés, la méthode array_diff() est plus appropriée. Bien que les méthodes de force brute puissent gérer les tableaux désordonnés, ils sont relativement inefficaces.

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