Maison >développement back-end >tutoriel php >Comment supprimer les objets en double d'un tableau en PHP ?
Comment supprimer des objets en double d'un tableau en PHP
La fonction array_unique() peut identifier et éliminer les éléments en double d'un tableau. Toutefois, cette fonctionnalité peut ne pas être immédiatement apparente pour les tableaux contenant des objets. Pour supprimer efficacement les objets en double, certaines modifications sont nécessaires.
Solution utilisant SORT_REGULAR
Pour permettre à array_unique() de fonctionner correctement avec les objets, spécifiez l'indicateur SORT_REGULAR comme deuxième paramètre :
<code class="php"><?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 :
Array ( [0] => MyClass Object ( [prop] => test1 ) [2] => MyClass Object ( [prop] => test2 ) )
Explication
En utilisant SORT_REGULAR, la fonction array_unique() compare essentiellement la propriété prop de chaque objet, traitant les objets avec des valeurs de propriété identiques comme des doublons.
Attention
Bien que cette méthode supprime efficacement les objets en double, il est important de noter qu'elle repose sur == comparaison plutôt que la comparaison === plus stricte. Cela signifie que les objets ayant des identités différentes mais des propriétés identiques 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!