Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich „array_unique' verwenden, um doppelte Objekte in PHP zu entfernen?

Wie kann ich „array_unique' verwenden, um doppelte Objekte in PHP zu entfernen?

Linda Hamilton
Freigeben: 2024-11-01 04:13:02
Original
800 Leute haben es durchsucht

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

Einzigartige Objekte mit array_unique

In PHP hilft die Funktion array_unique dabei, doppelte Werte aus einem Array zu entfernen. Wenn Sie jedoch mit Arrays arbeiten, die Objekte enthalten, scheint diese Funktionalität möglicherweise nicht wie erwartet zu funktionieren.

Geben Sie eine Lösung ein:

Für Arrays von Objekten können Sie array_unique verwenden mit dem Vergleichsflag SORT_REGULAR. Dieses Flag weist die Funktion an, Objekte anhand ihrer Eigenschaften und nicht anhand ihrer Objektreferenzen zu vergleichen.

Implementierung:

Betrachten Sie ein Array von Rollenobjekten:

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

So entfernen Sie Duplikate mit array_unique:

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

Ausgabe:

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

    [2] => Role Object
        (
            [name] => test2
        )
)
Nach dem Login kopieren

Vorsicht:

Das ist es Es ist unbedingt zu beachten, dass array_unique mit SORT_REGULAR den „==“-Vergleich und nicht den strikten Vergleich („===“) verwendet. Das bedeutet, dass Objekte mit identischen Eigenschaften, aber unterschiedlichen Objektreferenzen weiterhin als Duplikate betrachtet werden.

Das obige ist der detaillierte Inhalt vonWie kann ich „array_unique' verwenden, um doppelte Objekte in PHP 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