En programmation PHP, il est très courant de rencontrer le problème de la suppression de l'intersection de deux tableaux, notamment lorsque l'intersection de plusieurs tableaux doit être traitée. Cet article vous présentera une méthode simple et pratique pour supprimer l'intersection entre deux tableaux.
1. Description du problème
Supposons qu'il y ait respectivement deux tableaux $A et $B :
$A = array(1,2,3,4,5,6);
$B = array(4 , 5,7,8,9,10);
L'exigence est de conserver uniquement tous les éléments de $A et $B, mais de ne pas inclure l'intersection des deux tableaux, c'est-à-dire que le tableau résultat doit être :
$ Résultat = array( 1,2,3,6,7,8,9,10);
Alors comment y parvenir ? Ce qui suit vous présentera un par un.
2. Méthode 1
Tout d'abord, nous pouvons utiliser la fonction array_diff en PHP pour implémenter l'opération de différence des éléments du tableau :
$Result = array_merge(array_diff($A, $B), array_diff. ($B, $A));
Dans le code ci-dessus, array_diff($A, $B) signifie filtrer les éléments qui se trouvent dans le tableau $A mais pas dans le tableau $B array_diff($B, $); A) signifie filtrer les éléments du tableau $B mais pas dans le tableau $A. Utilisez ensuite la fonction array_merge pour combiner les deux tableaux de résultats. Cette méthode semble simple, mais en fait elle n'est pas robuste, comme le montrent les points suivants :
Donc, afin de mieux éviter ces problèmes, nous devons utiliser une méthode plus robuste pour supprimer l'intersection des éléments du tableau.
3. Méthode 2
Ensuite, nous pouvons parcourir chaque élément du tableau et effectuer des opérations de déduplication et de filtrage dans le processus. Le code est le suivant :
$Result = array();
foreach($A comme $value){
if(!in_array($value, $B)){ $Result[] = $value; }
}
foreach($B comme $value){
if(!in_array($value, $Result)){ $Result[] = $value; }
}
Dans ce qui précède code, nous définissons d'abord un tableau vide $Result, représentant le tableau de résultat final. Utilisez ensuite deux boucles foreach pour parcourir chaque élément dans $A et $B. Pendant le processus, utilisez la fonction in_array pour déterminer si l'élément actuel apparaît dans un autre tableau, par exemple s'il apparaît dans $B. S'il n'apparaît pas auparavant, il est ajouté à $Result. Le tableau $Result final est l'union de tous les éléments des deux tableaux.
L'utilisation de cette méthode présente les avantages suivants :
4. Résumé
En PHP, cet article présente deux façons de traiter les problèmes d'intersection de tableaux : en utilisant la fonction array_diff et le filtrage de traversée de boucle. Bien que les deux méthodes puissent obtenir des résultats corrects, la méthode d'utilisation du parcours de boucle est plus robuste et peut gérer davantage de cas extrêmes, ce qui mérite d'être appris.
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!