Ich habe folgende Datenstruktur (vereinfacht) aufgebaut:
Ein Array mit Objekten A,B,C
Ziel ist ein Array mit unique A Objekten, deren B und C Objekte als Array unter den zugehörigen A-Objekte hängen
Folgender Code funktioniert,
- Code: Alles auswählen
- foreach ($objects as $object) {
$newStructure[$object['A']['id']]['A'] = $object['A'];
$newStructure[$object['A']['id']]['X'][] = array('B' => $object['B'], 'C' => $object['C']);
}
aber ich stelle mir die Frage, ob/wie man diese Aufgabe mittels der Set::extract, Set::insert, etc. Methoden eleganter lösen kann.
- Code: Alles auswählen
Array
(
[0] => Array
(
[A] => Array
(
[id] => 1
)
[B] => Array
(
[id] => 23
)
[C] => Array
(
[id] => 1036
)
)
[1] => Array
(
[A] => Array
(
[id] => 1
)
[B] => Array
(
[id] => 21
)
[C] => Array
(
[id] => 1038
)
)
[2] => Array
(
[A] => Array
(
[id] => 2
)
[B] => Array
(
[id] => 77
)
[C] => Array
(
[id] => 1044
)
)
[3] => Array
(
[A] => Array
(
[id] => 2
)
[B] => Array
(
[id] => 79
)
[C] => Array
(
[id] => 1046
)
)
[4] => Array
(
[A] => Array
(
[id] => 3
)
[B] => Array
(
[id] => 50
)
[C] => Array
(
[id] => 1057
)
)
)
Als Ziel würde ich mir folgenden Aufbau wünschen
- Code: Alles auswählen
- Array
(
[0] => Array
(
[A] => Array
(
[id] => 1
)
[X]
[0] => Array (
[B] => Array
(
[id] => 23
)
[C] => Array
(
[id] => 1036
)
)
[1] => Array (
[B] => Array
(
[id] => 21
)
[C] => Array
(
[id] => 1038
)
)
)
[2] => Array
(
[A] => Array
(
[id] => 2
)
[X]
[0]
[B] => Array
(
[id] => 77
)
[C] => Array
(
[id] => 1044
)
[1]
[B] => Array
(
[id] => 79
)
[C] => Array
(
[id] => 1046
)
)
)