将phpforeach循环的结果存储为数组


Store results of a php foreach loop as an array

我使用foreach循环生成一组缩略图链接。我正在使用Wordpress,出于某种原因,我的PHP执行的地方不是我想要呈现列表的地方。因此,我的问题是:我可以用存储所有生成的html(对于每个图像,而不仅仅是最后一个图像)的东西来替换echo语句,并允许我在同一页面上进一步生成它吗?

谢谢你的帮助。到目前为止,这是我的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

您可以将结果存储到一个数组中,以便以后可以"回显"结果:

$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);
$arr = array();
foreach(...) {
   $arr[] = '<a href=........';
}