Maison >développement back-end >Problème PHP >Comment supprimer les valeurs identiques de deux tableaux en php
Lors des opérations sur les tableaux, vous pouvez parfois rencontrer la situation de supprimer les mêmes éléments de deux tableaux. Il existe plusieurs façons d'y parvenir en PHP. Trois méthodes différentes sont décrites ci-dessous.
Méthode 1 : utilisez la fonction de tableau array_diff()
La fonction array_diff() de PHP peut être utilisée pour calculer la différence entre deux ou plusieurs tableaux, c'est-à-dire qu'elle renvoie un nouveau tableau dont les valeurs apparaissent dans le premier tableau mais Éléments qui n'apparaissent pas dans d'autres tableaux. Par conséquent, nous pouvons utiliser array_diff() pour trouver les éléments de deux tableaux différents, c'est-à-dire le complément des mêmes éléments.
Exemple de code :
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; $result = array_merge(array_diff($array1, $array2), array_diff($array2, $array1)); print_r($result);
Résultat de sortie :
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 7 [4] => 9 [5] => 11 )
Le code ci-dessus utilise d'abord la fonction array_diff() pour trouver le complément des deux tableaux d'entrée, puis les fusionne dans un nouveau tableau, c'est-à-dire tous les différents éléments .
Méthode 2 : Utiliser le parcours en boucle
Nous pouvons également utiliser le parcours en boucle pour supprimer les mêmes éléments dans les deux tableaux. Pour implémenter cette méthode, nous devons d'abord parcourir un tableau, puis rechercher le même élément dans un autre tableau et le supprimer du tableau.
Exemple de code :
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; foreach ($array1 as $key => $value) { if (in_array($value, $array2)) { unset($array1[$key]); unset($array2[array_search($value, $array2)]); } } $result = array_merge($array1, $array2); print_r($result);
Résultat de sortie :
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 7 [4] => 9 [5] => 11 )
Le code ci-dessus parcourt d'abord les éléments de $array1, puis trouve les mêmes éléments dans $array2 et les supprime. Enfin, fusionnez les deux tableaux dans un nouveau tableau.
Méthode 3 : utilisez la fonction de tableau array_intersect()
Une autre méthode consiste à utiliser la fonction array_intersect() de PHP, qui renvoie l'intersection de deux ou plusieurs tableaux, c'est-à-dire les éléments contenus dans tous les tableaux d'entrée. Semblable à la première méthode ci-dessus, cette méthode recherche également les mêmes éléments dans les deux tableaux, puis les combine dans un nouveau tableau.
Exemple de code :
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; $result = array_intersect($array1, $array2); print_r($result);
Résultat de sortie :
Array ( [2] => 3 [4] => 5 )
Le code ci-dessus utilise directement la fonction array_intersect() pour trouver les mêmes éléments dans $array1 et $array2, c'est-à-dire 3 et 5.
Parmi ces méthodes, le code utilisant array_diff() est le plus concis et le plus efficace, car il peut effectuer toutes les tâches en même temps. Bien que la méthode d'utilisation du parcours de boucle soit simple et facile à comprendre, elle est légèrement compliquée et peut également prendre du temps. Enfin, il y a quelque chose à prendre en compte lors de l'utilisation de la méthode array_intersect(), car elle ne renvoie que les mêmes éléments, pas la différence entre deux tableaux, elle ne convient donc pas à tous les cas.
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!