Maison >développement back-end >tutoriel php >« array_unique » peut-il être utilisé pour supprimer des objets en double ?

« array_unique » peut-il être utilisé pour supprimer des objets en double ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 16:36:29249parcourir

Can `array_unique` Be Used to Remove Duplicate Objects?

Array_unique peut-il être utilisé avec des objets ?

Existe-t-il une fonction similaire à la méthode array_unique qui opère sur les objets ? Imaginez avoir plusieurs tableaux contenant des objets « Rôle ». Vous souhaitez les combiner et supprimer les doublons.

Solution

Array_unique peut être appliqué à un tableau d'objets avec la constante SORT_REGULAR :

<code class="php">class MyClass {
    public $prop;
}

$foo = new MyClass();
$foo->prop = 'test1';

$bar = $foo;

$bam = new MyClass();
$bam->prop = 'test2';

$test = array($foo, $bar, $bam);

print_r(array_unique($test, SORT_REGULAR));</code>

Sortie :

<code class="php">Array (
    [0] => MyClass Object
        (
            [prop] => test1
        )

    [2] => MyClass Object
        (
            [prop] => test2
        )
)</code>

Visitez http://3v4l.org/VvonH#v529 pour une démonstration en direct.

Attention : Cette méthode utilise le "= =" plutôt que la comparaison stricte ("==="). Ainsi, lors de la comparaison d'objets au sein du tableau, il examine les propriétés de chaque objet plutôt que de comparer les identités d'objet (instances).

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