Maison >développement back-end >tutoriel php >Comment fusionner des tableaux d'objets et supprimer les doublons en PHP ?

Comment fusionner des tableaux d'objets et supprimer les doublons en PHP ?

DDD
DDDoriginal
2024-11-13 11:57:02759parcourir

How to Merge Object Arrays and Remove Duplicates in PHP?

Fusionner des tableaux d'objets et éliminer les valeurs en double

Lorsque vous travaillez avec des tableaux d'objets, il peut s'avérer nécessaire de fusionner plusieurs tableaux en un seul tout en garantissant l'élimination des doublons. valeurs. Pour y parvenir, nous pouvons exploiter les capacités des fonctions de tableau intégrées de PHP.

Fusionner les tableaux

La fonction array_merge() est pratique lors de la combinaison de deux ou plus de tableaux. Il ajoute les éléments du deuxième tableau au premier, créant ainsi un nouveau tableau avec tous les éléments des deux. Dans ce cas, nous pouvons l'utiliser pour fusionner les deux tableaux d'entrée, $array1 et $array2, en un seul tableau.

Suppression des doublons

Pour supprimer les valeurs en double , nous pouvons utiliser la fonction array_unique(). Il renvoie un nouveau tableau avec uniquement les valeurs uniques du tableau d'entrée. Les doublons sont identifiés et exclus du résultat.

Combiner les fonctions

En combinant ces deux fonctions, nous pouvons atteindre l'objectif souhaité. Nous fusionnons d'abord les deux tableaux d'entrée à l'aide de array_merge(), puis appliquons array_unique() pour éliminer les valeurs en double. Voici à quoi cela ressemble :

$array = array_unique(array_merge($array1, $array2));

Cet extrait de code créera un nouveau tableau, $array, contenant les objets uniques de $array1 et $array2. Les e-mails en double seront supprimés.

Exemple d'utilisation

Considérez l'exemple suivant :

$array1 = [
    (object) ["email" => "gffggfg"],
    (object) ["email" => "example@email.com"],
    (object) ["email" => "wefewf"],
];
$array2 = [
    (object) ["email" => "example@email.com"],
    (object) ["email" => "wefwef"],
    (object) ["email" => "wefewf"],
];

$array = array_unique(array_merge($array1, $array2));

print_r($array);

Ce code produira le résultat suivant :

Array
(
    [0] => stdClass Object
        (
            [email] => gffggfg
        )
    [1] => stdClass Object
        (
            [email] => example@email.com
        )
    [2] => stdClass Object
        (
            [email] => wefewf
        )
    [3] => stdClass Object
        (
            [email] => wefwef
        )
)

Comme vous pouvez le constater, la valeur d'e-mail en double, "example@email.com", a été supprimée du tableau fusionné.

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