Heim  >  Artikel  >  Backend-Entwicklung  >  Kann „array_unique' zum Entfernen doppelter Objekte verwendet werden?

Kann „array_unique' zum Entfernen doppelter Objekte verwendet werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 16:36:29210Durchsuche

Can `array_unique` Be Used to Remove Duplicate Objects?

Kann Array_unique mit Objekten verwendet werden?

Gibt es eine Funktion ähnlich der Methode array_unique, die mit Objekten arbeitet? Stellen Sie sich vor, Sie hätten mehrere Arrays mit „Rollen“-Objekten. Sie möchten sie kombinieren und alle Duplikate entfernen.

Lösung

Array_unique kann mit der SORT_REGULAR-Konstante auf ein Array von Objekten angewendet werden:

<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>

Ausgabe :

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

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

Besuchen Sie http://3v4l.org/VvonH#v529 für eine Live-Demonstration.

Achtung: Diese Methode verwendet das „= ="-Vergleich statt des strikten Vergleichs ("==="). Beim Vergleich von Objekten innerhalb des Arrays werden also die Eigenschaften jedes Objekts untersucht, anstatt Objektidentitäten (Instanzen) zu vergleichen.

Das obige ist der detaillierte Inhalt vonKann „array_unique' zum Entfernen doppelter Objekte verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn