Maison  >  Article  >  développement back-end  >  Comment puis-je utiliser « array_unique » pour supprimer les objets en double en PHP ?

Comment puis-je utiliser « array_unique » pour supprimer les objets en double en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 04:13:02691parcourir

How Can I Use `array_unique` to Remove Duplicate Objects in PHP?

Objets uniques avec array_unique

En PHP, la fonction array_unique aide à éliminer les valeurs en double d'un tableau. Cependant, lorsque vous travaillez avec des tableaux contenant des objets, cette fonctionnalité peut ne pas sembler fonctionner comme prévu.

Entrez une solution :

Pour les tableaux d'objets, vous pouvez utiliser array_unique avec l'indicateur de comparaison SORT_REGULAR. Cet indicateur demande à la fonction de comparer les objets par leurs propriétés plutôt que par leurs références d'objet.

Implémentation :

Considérez un tableau d'objets de rôle :

<code class="php">class Role {
    public $name;
}

$foo = new Role();
$foo->name = 'test1';

$bar = $foo;

$bam = new Role();
$bam->name = 'test2';

$test = array($foo, $bar, $bam);</code>

Pour supprimer les doublons à l'aide de array_unique :

<code class="php">print_r(array_unique($test, SORT_REGULAR));</code>

Sortie :

Array (
    [0] => Role Object
        (
            [name] => test1
        )

    [2] => Role Object
        (
            [name] => test2
        )
)

Attention :

C'est Il est essentiel de noter que array_unique avec SORT_REGULAR utilise la comparaison "==", pas la comparaison stricte ("==="). Cela signifie que les objets ayant des propriétés identiques mais des références d'objet différentes seront toujours considérés comme des doublons.

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