"rouge", "b" => "vert","/> "rouge", "b" => "vert",">

Maison >développement back-end >Problème PHP >Comment comparer deux tableaux avec des valeurs différentes en php

Comment comparer deux tableaux avec des valeurs différentes en php

PHPz
PHPzoriginal
2023-04-26 10:27:34867parcourir

PHP est un langage de programmation très populaire et pratique qui fournit diverses méthodes de traitement et d'exploitation des tableaux. Au cours du processus de développement, nous devons souvent comparer la différence entre deux tableaux et afficher les différentes valeurs. Ci-dessous, je présenterai quelques méthodes de mise en œuvre.

Méthode d'implémentation 1 : utilisez la fonction array_diff()

La fonction array_diff() peut comparer les valeurs​​de deux tableaux et renvoyer des valeurs différentes.

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "blue", "d" => "yellow");

$result = array_diff($array1, $array2);

print_r($result);

Exécutez le code ci-dessus, le résultat de sortie est :

Array
(
    [b] => green
    [c] => blue
)

Comme le montrent les résultats ci-dessus, les valeurs​​avec les clés "b" et "c" dans $array1 et $array2 sont différentes, donc la fonction array_diff() renvoie ces valeurs.

Méthode d'implémentation 2 : utiliser la boucle foreach

En plus d'utiliser la fonction array_diff(), nous pouvons également utiliser la boucle foreach pour comparer les valeurs de deux tableaux et afficher les différentes valeurs.

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "blue", "d" => "yellow");

foreach($array1 as $key => $value){
    if($value != $array2[$key]){
        echo "键为".$key."的值不同,分别为".$value."和".$array2[$key]."<br>";
    }
}

Exécutez le code ci-dessus, le résultat de sortie est :

键为b的值不同,分别为green和blue
键为c的值不同,分别为blue和

Comme le montrent les résultats ci-dessus, les valeurs​​avec les clés "b" et "c" dans $array1 et $array2 sont différentes, donc la boucle foreach génère ces valeurs.

Il convient de noter que lorsque vous utilisez une boucle foreach pour comparer deux tableaux, vous devez vous assurer que les deux tableaux ont les mêmes clés, sinon une erreur Remarque : décalage non défini peut se produire.

Méthode d'implémentation 3 : utilisez la fonction array_map()

Une autre façon de comparer les valeurs de deux tableaux est d'utiliser la fonction array_map(). Cette fonction appliquera une fonction personnalisée aux valeurs de la même clé dans les deux tableaux, enregistrant les résultats dans un nouveau tableau.

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "blue", "d" => "yellow");

$result = array_map(function($a, $b){
    if($a != $b){
        return array($a, $b);
    }
}, $array1, $array2);

print_r($result);

Exécutez le code ci-dessus, le résultat de sortie est :

Array
(
    [b] => Array
        (
            [0] => green
            [1] => blue
        )

    [c] => Array
        (
            [0] => blue
            [1] =>
        )

    [d] => Array
        (
            [0] =>
            [1] => yellow
        )

)

Comme le montrent les résultats ci-dessus, les valeurs​​avec les clés "b" et "c" dans $array1 et $array2 sont différentes, donc la fonction array_map() renvoie ces valeurs.

Il convient de noter que lorsque vous utilisez la fonction array_map() pour comparer deux tableaux, vous devez utiliser une fonction personnalisée pour implémenter la logique de comparaison.

En résumé, il existe de nombreuses méthodes d'implémentation pour comparer les valeurs de deux tableaux et afficher des valeurs différentes. Parmi elles, la fonction array_diff() et la boucle foreach sont relativement simples et claires, et conviennent aux tableaux à relativement petite échelle ; tandis que la fonction array_map() est plus adaptée aux tableaux à relativement grande échelle, et des fonctions personnalisées peuvent être utilisées ; pour mettre en œuvre une logique de comparaison plus complexe. Dans le développement réel, la sélection de méthodes de comparaison appropriées en fonction de la situation réelle peut améliorer l'efficacité du développement et la qualité du 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!

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