„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 13.11.2024
Durchsuche:217

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:

class Role {
    public $name;
}

$foo = new Role();
$foo->name = 'test1';

$bar = $foo;

$bam = new Role();
$bam->name = 'test2';

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

So entfernen Sie Duplikate mit array_unique:

print_r(array_unique($test, SORT_REGULAR));

Ausgabe:

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

    [2] => Role Object
        (
            [name] => test2
        )
)

Achtung:

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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3