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>
So entfernen Sie Duplikate mit array_unique:
<code class="php">print_r(array_unique($test, SORT_REGULAR));</code>
Ausgabe:
Array ( [0] => Role Object ( [name] => test1 ) [2] => Role Object ( [name] => test2 ) )
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!