所以我暂时没有编程,但我决定解决一个小型网络应用程序以重新进入游戏。我虽然有点麻烦,但它有点烦人,因为我知道答案很简单。因此,我正在制作无数据库图像库,并且我使用Twitter Bootstrap作为前端。我想显示我使用经典引导程序行设置从目录中读取的图像,如下所示:
<div class="row">
<div class="col-md-3 portfolio-item">
<a href="portfolio-item.html"><img class="img-responsive" src="http://placehold.it/750x450"></a>
</div>
<div class="col-md-3 portfolio-item">
<a href="portfolio-item.html"><img class="img-responsive" src="http://placehold.it/750x450"></a>
</div>
<div class="col-md-3 portfolio-item">
<a href="portfolio-item.html"><img class="img-responsive" src="http://placehold.it/750x450"></a>
</div>
<div class="col-md-3 portfolio-item">
<a href="portfolio-item.html"><img class="img-responsive" src="http://placehold.it/750x450"></a>
</div>
</div>
问题在于我只能将四张图像放入一行,所以我不能做类似的事情:
<div class="row">
<?php echo"$img";?>
</div>
我如何回应
<div class="row">
每四个
<?php echo"$img";?>
我觉得嵌套循环可能有效,但我似乎无法得到它。
感谢。
答案 0 :(得分:1)
你需要一个带索引的循环;然后你可以检查索引是否可被4整除:
if ($i % 4 == 0) {
?><div class="row"></div><?php
}
或者,你可以array_chunk
你的数据,并在结果上运行一个嵌套循环,输出外循环中的行。
答案 1 :(得分:0)
每行
for($i=0; $i<$num_item; $i++) {
在第一个项目之前开始一个新行,在
之后开始每个第四个项目if($i % 4 == 0) {
echo '<div class="row">';
}
在第4项之后和
之后的每第4项结束一行if($i % 4 == 3) {
echo '</div>
}
完整代码:
for($i=0; $i<$num_item; $i++) {
if($i % 4 == 0) {
echo '<div class="row">';
}
// Print the item here
if($i % 4 == 3) {
echo '</div>
}
}
答案 2 :(得分:0)
使用(注意冒号和结尾)处理大量的html代码时
<?php for (index; condition; step) : ?>
<h1>HTML STUFF</h1>
<?php endif; ?>
替代语法比传统标记更清晰。 我建议:
<div class="row">
<?php for($i = 0; $i < $total_pics; $i++): ?>
<div class="col-md-3 portfolio-item">
<a href="<?php echo $link; ?>"><img class="img-responsive" src="<?php echo $img_link; ?>"></a>
</div>
<?php if ($i % 4 == 3 && $i < $total_pics): ?>
</div>
<div class="row">
<?php endif;
endfor; ?>
</div>
如果要显示更多图片并且仅在第四张图片之后,则仅允许新行放置。 这允许html代码根据需要缩进,并在此过程中稍微清理PHP代码。如果没有要显示的图片,这也允许初始行自动关闭。