這裏是我的數據的簡化版本。這是使用連接的查詢的結果,並且產生這樣的數據:合併除了一個值以外的對象數組的副本... php/mysql
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
)
)
此數組可能包含多個對象,其中包含不同的ID,名稱和圖片。
我想通過每個對象循環並輸出數據。這是我這樣做:
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,並可能改變數據的輸出方式,但我希望先看看這個方法,以及如何去做。
在此先感謝。
接受這個,因爲它回答我的問題,並顯示排序對象/數組背後的邏輯,即使bensiu的解決方案看起來更優雅,謝謝 – alex 2011-04-03 20:39:16