Maison > Article > développement back-end > Comment comparer la différence entre deux tableaux en php
En PHP, vous pouvez rapidement faire la différence entre deux tableaux en les comparant. Dans cet article, nous explorerons plusieurs façons de comparer deux tableaux et d’obtenir les différences entre eux. La fonction
array_diff() est l'une des méthodes courantes en PHP pour comparer deux tableaux. Il accepte deux tableaux ou plus comme arguments et renvoie la différence entre le premier tableau et les autres tableaux. Plus précisément, il renvoie un tableau comprenant des valeurs qui apparaissent uniquement dans le premier tableau. Voici un exemple :
$array1 = array("red", "green", "blue"); $array2 = array("green", "blue", "yellow"); $diff = array_diff($array1, $array2); print_r($diff);
Dans l'exemple ci-dessus, array_diff() renvoie la valeur qui apparaît uniquement dans $array1, qui est "red". La fonction
array_diff_assoc() est utilisée pour comparer les différences entre les clés et les valeurs dans les tableaux associatifs. Il accepte deux tableaux ou plus comme arguments et renvoie la différence entre le premier tableau et les autres tableaux. Contrairement à array_diff(), array_diff_assoc() prend en compte la correspondance de clé et de valeur. Voici un exemple :
$array1 = array("a"=>"red", "b"=>"green", "c"=>"blue"); $array2 = array("a"=>"red", "b"=>"blue", "c"=>"green"); $diff = array_diff_assoc($array1, $array2); print_r($diff);
Dans l'exemple ci-dessus, array_diff_assoc() renvoie uniquement les entrées avec des clés ou des valeurs différentes dans $array1, c'est-à-dire "b" => "green" et "c "= >"bleu".
array_udiff() compare deux tableaux ou plus et utilise la fonction de rappel spécifiée pour comparer les valeurs. La fonction de rappel nécessite deux paramètres, qui sont les valeurs de comparaison. Voici un exemple :
function compare($a, $b) { if ($a === $b) { return 0; } return ($a > $b) ? 1 : -1; } $array1 = array("red", "green", "blue"); $array2 = array("GREEN", "BLUE", "yellow"); $diff = array_udiff($array1, $array2, 'compare'); print_r($diff);
Ici, nous définissons une fonction de comparaison qui compare les valeurs de deux éléments. Nous utilisons ensuite cette fonction pour appeler la fonction array_udiff(), en stockant le résultat dans la variable $diff. array_udiff() renverra la valeur qui apparaît uniquement dans $array1, qui est "rouge".
array_diff_uassoc() compare deux tableaux Il utilise la fonction de rappel spécifiée pour comparer les clés et les valeurs dans. les tableaux associatifs. Cette fonction de rappel nécessite deux paramètres, la clé et la valeur de la comparaison. Voici un exemple :
function compare($a, $b) { $key_compare = strcmp($a, $b); if ($key_compare === 0) { return 0; } return ($key_compare > 0) ? 1 : -1; } $array1 = array('a' => 'red', 'b' => 'green', 'c' => 'blue'); $array2 = array('a' => 'red', 'b' => 'blue', 'd' => 'green'); $diff = array_diff_uassoc($array1, $array2, 'compare'); print_r($diff);
Ici, nous définissons une fonction de comparaison qui compare les clés de deux éléments. Nous utilisons ensuite cette fonction pour appeler la fonction array_diff_uassoc(), en stockant le résultat dans la variable $diff. array_diff_uassoc() ne renverra que les entrées avec des clés ou des valeurs différentes dans $array1, c'est-à-dire "b" => "vert" et "c" => "bleu".
Résumé
En PHP, il existe de nombreuses options pour comparer deux tableaux ou plus, en fonction des facteurs que vous devez prendre en compte. Par exemple, si vous avez uniquement besoin de comparer les valeurs d'un seul tableau, l'utilisation de la fonction array_diff() est un bon choix. Si vous devez considérer la correspondance des clés et des valeurs, vous devez utiliser la fonction array_diff_assoc(). Si vous avez besoin d'une méthode de comparaison personnalisée, vous pouvez utiliser les fonctions array_udiff() et array_diff_uassoc(). Quelle que soit la méthode que vous choisissez, vous pouvez rapidement trouver les différences entre deux tableaux grâce à une simple comparaison.
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!