Können Sie „array_unique' mit Objekten verwenden, um Duplikate zu entfernen?

Mary-Kate Olsen
Freigeben: 2024-11-01 14:29:02
Original
782 Leute haben es durchsucht

Can You Use `array_unique` with Objects to Remove Duplicates?

Array_unique mit Objekten verwenden

Arrays sind eine grundlegende Datenstruktur in der Programmierung, und es müssen häufig Operationen an ihnen ausgeführt werden. Ein häufiger Vorgang ist das Entfernen doppelter Elemente. Für Arrays mit primitiven Datentypen kann die Funktion array_unique verwendet werden. Beim Umgang mit Objekten werden die Dinge jedoch etwas komplexer.

Problem

Stellen Sie sich vor, Sie haben mehrere Arrays mit Rollenobjekten, die zusammengeführt und dann dedupliziert werden müssen. Gibt es eine Möglichkeit, dies mit einer Methode ähnlich array_unique zu erreichen, die speziell für Objekte entwickelt wurde?

Lösung

Ja, es ist möglich, array_unique mit Objekten zu verwenden Angabe des Flags SORT_REGULAR. Dadurch werden die Objekte anhand ihrer Eigenschaften und nicht anhand der Objektidentität verglichen.

<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>
Nach dem Login kopieren

Ausgabe:

Array (
    [0] => MyClass Object
        (
            [prop] => test1
        )

    [2] => MyClass Object
        (
            [prop] => test2
        )
)
Nach dem Login kopieren

Wichtiger Hinweis:

Wenn Sie array_unique mit Objekten verwenden, ist es wichtig zu beachten, dass der „=="-Vergleich und nicht der strikte Vergleich („===") verwendet wird. Das bedeutet, dass zwei Objekte mit identischen Eigenschaften, aber unterschiedlichen Objektidentitäten nicht als Duplikate betrachtet werden. Wenn daher ein strenger Vergleich erforderlich ist, kann ein alternativer Ansatz erforderlich sein.

Das obige ist der detaillierte Inhalt vonKönnen Sie „array_unique' mit Objekten verwenden, um Duplikate zu entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!