Maison > développement back-end > Problème PHP > Comment supprimer les valeurs identiques de deux tableaux en php

Comment supprimer les valeurs identiques de deux tableaux en php

PHPz
Libérer: 2023-04-27 09:30:46
original
1338 Les gens l'ont consulté

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);
Copier après la connexion

Résultat de sortie :

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 7
    [4] => 9
    [5] => 11
)
Copier après la connexion
Copier après la connexion

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);
Copier après la connexion

Résultat de sortie :

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 7
    [4] => 9
    [5] => 11
)
Copier après la connexion
Copier après la connexion

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);
Copier après la connexion

Résultat de sortie :

Array
(
    [2] => 3
    [4] => 5
)
Copier après la connexion

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!

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