Entfernen von Duplikaten aus einem Array basierend auf der Objekteigenschaft?

8

Ich habe ein Array von Objekten. Ich möchte die Duplikate basierend auf dem Wert "name" im Objekt entfernen.

%Vor%

In diesem Fall, wie entferne ich das doppelte "Campaign Finance" -Objekt aus dem Array. Also das ganze [2] Objekt?

Ich habe hier ein paar PHP-Duplikate-Array-Fragen durchgegangen, aber keine schien sich mit Objekten zu befassen und nur von einem Parameter zu filtern.

    
Drew Baker 08.05.2012, 20:10
quelle

4 Antworten

11

Erstellen Sie ein neues Array mit den vorhandenen Schlüsseln und nur dem Namen als Wert, verwenden Sie array_unique (beachten Sie, dass Keys beibehalten werden).

Entfernen Sie dann alles, was nicht in dem eindeutigen Array ist, vom ursprünglichen Schlüssel.

Bearbeiten: Vollständiges Beispiel:

%Vor%

Ausgabe:

%Vor%

Das Objekt mit term_id 15 wurde entfernt, da es den gleichen Namen wie term_id 14 hatte.

    
ccKep 08.05.2012, 20:23
quelle
1

Ich habe nach einer guten Antwort gesucht und konnte keine finden, also habe ich meine eigene geschrieben, die mit diesem Fall umgehen wird, und den Fall, wenn Sie auf der Basis mehrerer Eigenschaften entdupen möchten.

> %Vor%

Hier ist die generische Funktion:

%Vor%

Hier ist die volle Nutzung für Ihren Fall:

%Vor%     
Nico Westerdale 21.11.2016 23:03
quelle
1

Ich habe das Gleiche gebraucht ... Hier ist, was ich getan habe (arbeiten für Array und Objekte, basierend auf diesem Post )

%Vor%     
gordie 31.05.2017 22:06
quelle
0

Etwas außerhalb des Themas, aber eng verwandt: der kürzeste Weg, um ein Array von Objekten nur durch ihre Instanz zu deduplizieren:

%Vor%     
d-ph 22.09.2017 15:07
quelle