Вот упрощенная версия моих данных. Это результат запроса с использованием JOIN, который выдает такие данные:
id name picture
1 Foo picture_001.jpg
1 Foo picture_002.jpg
2 Bar another_image.jpg
3 Baz some_picture_001.jpg
3 Baz some_picture_002.jpg
Вывод представляет собой массив объектов, который выглядит следующим образом (свернут, чтобы просто показать данные ID 1):
print_r($my_data); // produces:
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Foo
[picture] = picture_001.jpg
)
[1] => stdClass Object
(
[id] => 1
[name] => Foo
[picture] = picture_002.jpg
)
)
Этот массив может содержать еще несколько объектов с разными идентификаторами, именами и изображениями.
Я пытаюсь перебрать каждый объект и вывести данные. Это я делаю так:
foreach($object as $item)
{
echo $item->id;
}
Это работает, но, как и ожидалось, выдает дублированные данные в результате объединения.
Я искал решение, но не могу понять, как предотвратить это дублирование.
В моем дампе данных выше, я бы хотел, чтобы вывод был:
ID 1
Name: Foo
Pictures in Foo:
picture_001.jpg
picture_002.jpg
ID 2
Name:Bar
Pictures in Bar
another_image.jpg
Таким образом, если элемент имеет несколько изображений, он группируется вместе.
Я могу предоставить SQL и, возможно, изменить способ вывода данных, но я хотел бы сначала увидеть методологию, лежащую в основе этого, и как это сделать.
Заранее спасибо.