Maison  >  Article  >  développement back-end  >  Supprimer les mêmes éléments dans deux tableaux en php

Supprimer les mêmes éléments dans deux tableaux en php

王林
王林original
2023-05-19 19:29:36588parcourir

PHP est un langage de développement côté serveur populaire qui prend en charge diverses technologies de traitement et de gestion de données. Parmi eux, les tableaux constituent une partie importante de la programmation PHP et peuvent représenter diverses structures de données et collections d'éléments complexes. Supposons que nous ayons deux tableaux A et B, qui contiennent plusieurs éléments, et que nous souhaitions implémenter une fonction : supprimer les mêmes éléments dans A et B, c'est-à-dire conserver uniquement les éléments qui apparaissent dans A ou B mais pas les deux. Ci-dessous, nous expliquerons comment utiliser PHP pour réaliser cette fonction.

1. Notions de base sur les tableaux

En PHP, un tableau est une structure de données ordonnée qui peut stocker plusieurs valeurs ou paires clé-valeur. Chaque élément est identifié par un indice unique. Les opérations courantes sur les tableaux incluent l'ajout, la suppression, le parcours et le tri. Voici quelques fonctions de tableau couramment utilisées :

• array() : définit une variable de tableau ;
• array_push() : ajoute un ou plusieurs éléments à la fin du tableau
• array_pop() : supprime un élément du tableau ; fin du tableau ;
• array_shift() : Supprime un élément de la tête du tableau ;
• array_unshift() : Ajoute un ou plusieurs éléments à la tête du tableau
• array_slice() : Extrait une sous-collection ; à partir du tableau ;
• array_merge() : fusionne deux tableaux ou plus ;
• array_splice() : supprime ou insère des éléments d'un tableau.

2. Déduplication du tableau

Avant d'implémenter la fonction de suppression des mêmes éléments, nous devons réfléchir à la manière de supprimer les éléments en double dans le tableau. PHP fournit une fonction intégrée array_unique(), qui peut implémenter des opérations de déduplication. La syntaxe de cette fonction est la suivante :

array_unique(array $array [, int $sort_flags = SORT_STRING]) : array

Parmi eux, le paramètre $array représente la variable tableau à dupliquer, et le paramètre $sort_flags représente la méthode de tri. S'il existe plusieurs valeurs identiques, seule la première valeur sera conservée après la déduplication et la position de la valeur conservée restera inchangée. Voici un exemple :

$a = array(1, 2, 3, 2, 4, 3);
$b = array_unique($a); // $b = [1, 2, 3, 4]

3. Supprimez les mêmes éléments

Maintenant que nous savons comment dédupliquer un tableau, nous allons utiliser un exemple pour montrer comment supprimer les mêmes éléments. Supposons que nous ayons deux tableaux A et B dont les éléments sont du même type et comportent un nombre indéterminé d’éléments en double. Nous voulons implémenter une fonction diff() qui prend deux tableaux comme paramètres et renvoie un tableau contenant des éléments qui n'existent que dans un seul tableau, c'est-à-dire en supprimant les mêmes éléments dans A et B.

Méthode 1 : utilisez la fonction array_diff()

PHP fournit la fonction array_diff(), qui peut renvoyer la différence entre deux ou plusieurs tableaux. La syntaxe de cette fonction est la suivante :

array_diff(array $array1, array $array2 [, array $...]) : array

Le tableau renvoyé par cette fonction contient tous les éléments qui sont dans $array1 mais pas dans $tableau2. Si plusieurs tableaux sont donnés, le tableau renvoyé contient des éléments qui ne figurent dans aucun des tableaux suivants. Voici un exemple :

$a = array(1, 2, 3, 4, 5);
$b = array(4, 5, 6, 7);
$result = array_diff($a, $b); // $result = [1, 2, 3]

Nous pouvons appliquer le résultat de cette fonction à A et B pour obtenir des éléments qui n'existent que dans un seul tableau :

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $diff_a = array_diff($unique_a, $unique_b);
    $diff_b = array_diff($unique_b, $unique_a);
    return array_merge($diff_a, $diff_b);
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]

À partir de là, nous pouvons d'abord utiliser la fonction array_diff() pour obtenir deux La différence ensemble de tableaux, puis les différences peuvent être combinées.

Méthode 2 : utiliser la boucle foreach

En plus d'utiliser les fonctions intégrées, nous pouvons également supprimer les mêmes éléments en parcourant deux tableaux. Plus précisément, nous pouvons d'abord dédupliquer deux tableaux, puis parcourir l'un des tableaux, et pour chaque élément qu'il contient, si l'élément n'est pas dans l'autre tableau, ajouter l'élément au tableau résultant. Voici un exemple :

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $result = array();
    foreach ($unique_a as $x) {
        if (!in_array($x, $unique_b)) {
            $result[] = $x;
        }
    }
    foreach ($unique_b as $y) {
        if (!in_array($y, $unique_a)) {
            $result[] = $y;
        }
    }
    return $result;
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]

À partir de là, nous pouvons parcourir le tableau en utilisant la boucle foreach et pour chaque élément, vérifier si l'élément existe dans un autre tableau en utilisant la fonction in_array() et sinon, l'ajouter au milieu du tableau de résultats.

4. Résumé

PHP est un langage de programmation puissant, dont les tableaux sont un composant important. Cet article explique comment utiliser PHP pour supprimer les mêmes éléments de deux tableaux, notamment en utilisant des fonctions intégrées et en traversant des tableaux. Nous pouvons choisir différentes méthodes en fonction des besoins réels pour obtenir les meilleurs résultats. J'espère que cet article aidera les lecteurs à comprendre l'utilisation de base des tableaux 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!

Déclaration:
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