PHP: Funktion Gruppe Reihe von Objekten von Wert
Arbeite ich mit einem multi-dimensionalen Arrays. Wie kann ich Duplikate entfernen, indem Sie Wert? In den folgenden array [0], [2] und [5] die gleichen [ID]. Gibt es eine Funktion, entfernen von doppelten arrays basierend auf einem bestimmten Wert? In diesem Fall würde ich gerne entfernen, array [2] und array [5], da Sie die gleichen [ID] als array [0].
Danke für alle Informationen, die Sie haben können.
Array
(
[0] => stdClass Object
(
[d] => 2010-10-18 03:30:04
[ID] => 9
)
[1] => stdClass Object
(
[d] => 2010-10-18 03:30:20
[ID] => 4
)
[2] => stdClass Object
(
[d] => 2010-11-03 16:46:34
[ID] => 9
)
[3] => stdClass Object
(
[d] => 2010-11-02 03:19:14
[ID] => 1
)
[4] => stdClass Object
(
[d] => 2010-05-12 04:57:34
[ID] => 2
)
[5] => stdClass Object
(
[d] => 2010-05-10 05:24:15
[ID] => 9
)
)
- FYI, Sie halten die Verwendung des Begriffs "Schlüssel", aber Sie sind eigentlich bezieht sich auf einen "Wert", nicht "Schlüssel". Die [0], [2] und [5], die Sie erwähnen, sind der Schlüssel. Die [ID] ist auch ein Schlüssel. Die 9, dass jede dieser ID ' s enthält, werden alle Werte.
- danke, habe ich geändert, die Sprache der Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Weg, es zu tun: (
$old_array
ist dein array, und$new_array
wird, enthalten die neuen, Duplikate entfernt, sortiert nach ID)(Habe ich noch nicht getestet, aber es sollte funktionieren)
Können Sie es mit ouzo goodies:
Sehen http://ouzo.readthedocs.org/en/latest/utils/fluent_array.html#uniqueby
Ich denke, es wäre das einfachste, um eine Schleife durch und erstellt ein neues array. In der Schleife verwenden, array_key_exists (), um zu bestimmen, ob die ID bereits vorhanden ist, in das neue array, und wenn nicht, ein element anzuhängen.
Ist es nicht ein mehrdimensionales array, es ist eine array von Objekten. Sie können einfach Schleife über es (in diesem Beispiel wird das array in place):
Können Sie auch erstellen Sie ein neues array und fügen Sie die Objekte in das neue array.
Hinweis die loop-by-reference in der zweiten foreach.
Überprüfen indiziert Funktion von Nspl.