我有一个包含有关某些图像的信息的数组,我用它来通过foreach循环打印一些img html标记,如下所示:
<?php foreach ( $images as $image ) : ?>
<img alt="<?php echo $image->alttext ?>" src="<?php echo $image->thumbnailURL ?>" />
<?php endforeach; ?>
我想在每10张图片中包含一个div。其余的也应该得到一个div。
我想我需要在array_chunk
上使用$images
并将上面的内容包装在每个块的另一个循环中。我开始做的一点点数学运算如下:
$pics_per_page = 10;
$imgcount = count($images);
$num_pages = ceil($imgcount/$pics_per_page);
$pages = array_chunk($images, $num_pages);
我如何从这里开始?如何输出我的HTML,如何正确使用$ images数组?
忘记了array_chunk方法,我有以下方法,但是array_chunk方法看起来更干净。
for i from 1 to num_pages:
echo "<div>"
j = (i-1) * pics_per_page;
while j <= i * pics_per_page
echo "<img src = "$images[j]->thumbnailURL />";
endwhile;
echo "</div>"
感谢您的帮助, Sepehr
答案 0 :(得分:2)
您错误地使用了array_chunk
[docs]。您只需指定每个块的大小:
$chunks = array_chunk($images, 10);
然后你需要一个嵌套的for
(foreach
)循环:
<?php foreach($chunks as $chunk): ?>
<div class="someClass">
<?php foreach($chunk as $image): ?>
<img alt="<?php echo $image->alttext ?>" src="<?php echo $image->thumbnailURL ?>" />
<?php endforeach; ?>
</div>
<?php endforeach; ?>
答案 1 :(得分:2)
您也可以在没有array_chunk
的情况下使用它。
<?php
$imgTot = count($images);
echo '<div>';
for($i=0; $i<$imgTot; $i++)
{
if ($i % 10 == 0) {
echo '<div>';
}
echo '<img alt="'.$image->alttext.'" src="'.$image->thumbnailURL.'" />';
if ($i % 10 == 9) {
echo '</div>';
}
}
echo '</div>';
?>
请参阅此处的工作示例:http://codepad.org/FkdTEH91