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

Comment trouver des valeurs différentes dans deux tableaux en php

WBOY
Libérer: 2023-05-23 11:57:37
original
1044 Les gens l'ont consulté

PHP, en tant que langage de programmation largement utilisé, doit souvent comparer différentes valeurs entre deux tableaux lors du traitement des tableaux. Cet article présentera quelques méthodes PHP pour connaître les différentes valeurs de deux tableaux.

Méthode 1 : Utiliser la fonction array_diff()
La fonctionarray_diff() est très utile pour comparer différentes valeurs entre deux tableaux. Elle est utilisée comme suit :

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry", "d" => "date");
$array2 = array("a" => "apple", "b" => "banana", "g" => "grape");

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

print_r($result);
?>
Copier après la connexion

Dans le code ci-dessus, nous définissons deux tableaux $array1 et $. array2, recherchez la valeur différente de $array2 de $array1. Il renverra quelles valeurs existent dans $array1 mais pas dans $array2. Le résultat de sortie devrait être :

Array ( [c] => cherry [d] => date )
Copier après la connexion

Méthode 2 : utilisez la fonction array_udiff()
Si les éléments du tableau que nous devons comparer ne sont pas seulement des valeurs simples, mais nécessitent également des comparaisons plus avancées, nous devons utiliser la fonction array_udiff(), ce qui peut nous permettre d'utiliser une fonction de rappel personnalisée à des fins de comparaison. L'utilisation est la suivante :

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("apple", "banana", "cherry", "date");
$array2 = array("apple", "banana", "grape");

$result = array_udiff($array1, $array2, "compare");

print_r($result);
?>
Copier après la connexion

Dans le code ci-dessus, nous définissons une fonction de rappel de comparaison compare(), qui est utilisée pour comparer la relation de taille entre deux éléments et renvoyer l'élément de tableau d'origine. Ensuite, nous utilisons la fonction array_udiff(), en passant deux tableaux et une fonction de rappel personnalisée, qui renvoie les éléments qui existent dans le premier tableau et les éléments qui n'existent pas dans le deuxième tableau. Le résultat de sortie devrait être :

Array ( [2] => cherry [3] => date )
Copier après la connexion

Méthode 3 : utilisez la fonction array_diff_key()
Si nous avons seulement besoin de comparer les clés de deux tableaux, pas les valeurs, nous pouvons utiliser la fonction array_diff_key(). Il renverra les valeurs dont les clés ne correspondent pas dans les deux tableaux. L'utilisation est la suivante :

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

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

print_r($result);
?>
Copier après la connexion

Dans le code ci-dessus, nous comparons les clés des deux tableaux et renvoyons la valeur de la valeur clé dans $array1 qui est différente de $array2. Le résultat de sortie devrait être :

Array ( [c] => cherry )
Copier après la connexion
Copier après la connexion

Méthode 4 : utilisez la fonction array_udiff_assoc()
Si nous devons comparer différentes valeurs de deux tableaux multidimensionnels, nous devons utiliser la fonction array_udiff_assoc(). la fonction array_udiff(), sauf qu'elle prend en charge la comparaison de tableaux multidimensionnels. L'utilisation est la suivante :

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_udiff_assoc($array1, $array2, "compare");

print_r($result);
?>
Copier après la connexion

Dans le code ci-dessus, nous définissons une fonction de rappel compare() pour comparer les éléments d'un tableau multidimensionnel, et l'utilisation est similaire à la méthode 2. Nous passons deux tableaux multidimensionnels et utilisons la fonction de rappel pour les comparer. Le résultat renvoie les éléments qui existent dans $array1 mais pas dans $array2. Le résultat de sortie devrait être :

Array ( [c] => cherry )
Copier après la connexion
Copier après la connexion

Conclusion

PHP fournit une fonction très riche pour comparer différentes valeurs entre deux tableaux. Nous pouvons utiliser la fonction array_diff() ou array_udiff() pour comparer différentes valeurs entre des tableaux ordinaires, utiliser la fonction array_diff_key() pour comparer différentes valeurs entre des tableaux avec différentes valeurs de clé et utiliser la fonction array_udiff_assoc() pour comparer tableaux multidimensionnels de différentes valeurs. Maîtriser l'utilisation de ces fonctions nous aidera grandement à traiter les données lors du développement PHP.

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