Maison  >  Article  >  développement back-end  >  Comment fusionner des tableaux avec des objets identiques et éliminer les doublons en PHP ?

Comment fusionner des tableaux avec des objets identiques et éliminer les doublons en PHP ?

DDD
DDDoriginal
2024-11-15 07:05:04974parcourir

How can I merge arrays with identical objects and eliminate duplicates in PHP?

Fusionner des tableaux avec des objets identiques et éliminer les doublons

La fusion de plusieurs tableaux en un seul tableau est une tâche courante en programmation. Cependant, lorsque vous travaillez avec des tableaux contenant des objets, il est essentiel de gérer les doublons avec soin pour éviter les problèmes d'intégrité des données.

Considérez un scénario dans lequel vous disposez de deux tableaux, $array1 et $array2, contenant des objets avec une propriété « email ». comme identifiant unique. Votre objectif est de fusionner ces tableaux, en garantissant que les valeurs d'e-mail en double sont supprimées.

Solution

Pour obtenir le résultat souhaité, vous pouvez utiliser deux fonctions PHP : array_merge( ) et array_unique().

  1. array_merge(): Cette fonction fusionne les éléments de plusieurs tableaux en un seul tableau.
  2. **array_unique() : Cette fonction supprime les valeurs en double d'un tableau, garantissant que chaque valeur n'apparaît qu'une seule fois.

En combinant ces fonctions, vous peut fusionner efficacement les deux tableaux tout en éliminant les e-mails en double. Le code ci-dessous illustre cette approche :

<?php

$array1 = [
    (object) ["email" => "gffggfg"],
    (object) ["email" => "[email protected]"],
    (object) ["email" => "wefewf"],
];

$array2 = [
    (object) ["email" => "[email protected]"],
    (object) ["email" => "wefwef"],
    (object) ["email" => "wefewf"],
];

// Merge the arrays
$mergedArray = array_merge($array1, $array2);

// Remove duplicate values
$uniqueArray = array_unique($mergedArray, SORT_REGULAR);

// Print the merged and unique array
print_r($uniqueArray);
?>

Sortie :

Array
(
    [0] => stdClass Object
        (
            [email] => gffggfg
        )

    [1] => stdClass Object
        (
            [email] => [email protected]
        )

    [2] => stdClass Object
        (
            [email] => wefewf
        )

    [3] => stdClass Object
        (
            [email] => wefwef
        )
)

Comme vous pouvez le voir, le $uniqueArray résultant ne contient que des valeurs de courrier électronique uniques, fusionnant et dédupliquant avec succès les deux tableaux d'entrée. .

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