2013-07-29 51 views
-3

我正在使用foreach循環來生成一組縮略圖鏈接。我正在使用Wordpress,出於某種原因,我的PHP正在執行的地方不是我想呈現列表的地方。所以我的問題是:我可以將echo語句替換爲將存儲所有生成的html(對於每個圖像,而不僅僅是最後一個)的東西,並允許我在同一頁面進一步生成它?將php foreach循環的結果存儲爲數組

感謝您的任何幫助。這裏是我的PHP至今:

foreach ($gallery_images as $galleryID) { 
    $attachment = get_post($galleryID); 

    $thumb_img = wp_get_attachment_image_src($galleryID, 'thumbnail'); //thumbnail src 
    $full_img = wp_get_attachment_image_src($galleryID, 'full'); //full img src 

    echo '<a href="' . $full_img[0] . '" id="description-button-' . $gallery_images_count . '" class="thumbLink" target="_blank"><img src="' . $thumb_img[0] .'"></a>'; 

    $gallery_images_count++; 

}//end forEach 
+0

而不是'echo ...'a'$ html [] = ...'? – deceze

回答

1

您可以將結果保存到一個數組,這樣就可以「回聲」的結果後:

$links = array(); 
foreach ($gallery_images as $galleryID) { 
    $attachment = get_post($galleryID); 

    $thumb_img = wp_get_attachment_image_src($galleryID, 'thumbnail'); //thumbnail src 
    $full_img = wp_get_attachment_image_src($galleryID, 'full');   //full img src 

    $links[] = '<a href="' . $full_img[0] . '" id="description-button-' . $gallery_images_count . '" class="thumbLink" target="_blank"><img src="' . $thumb_img[0] .'"></a>'; 

    $gallery_images_count++; 

} 
在你的代碼

再後來,你可以打印出來:

echo implode("\n", $links); 
+0

這是完美的,非常感謝你的幫助。出於興趣,內爆是做什麼的? – Kev

+0

它將數組的元素組合成一個大字符串,用分隔符分隔(第一個參數)。文檔:http://php.net/manual/en/function.implode.php – jh314

0
$arr = array(); 
foreach(...) { 
    $arr[] = '<a href=........'; 
}