我希望通过PHP中的循环连续添加3个div。 例如:
<div class="container">
<div class="row">
<div class="col-md-4"> Item 1 </div>
<div class="col-md-4"> Item 2 </div>
<div class="col-md-4"> Item 3 </div>
</div>
<div class="row">
<div class="col-md-4"> Item 4 </div>
<div class="col-md-4"> Item 5 </div>
<div class="col-md-4"> Item 6 </div>
</div>
</div>
我在Stackoverflow上做了一些搜索,但是我没有找到一个好的解决方案。谁能帮我?到目前为止,这是我的PHP代码,但正如您所看到的,它只放置了一个项目
for($i = 0; $i < $limit; $i++) {
if ($i % 3 == 0) {
$content .= "<div class='row'>";
}
$content.= "<div class='col-md-4 col-sm-6'>Item ". $i ."</div></div>";
if ($i % 3 == 0) {
$content .= "</div>";
}
}
答案 0 :(得分:3)
如果将数字放入多维数组,则可以使用嵌套的foreach
循环。
foreach (array_chunk(range(1, $limit), 3) as $row) {
$content .= "<div class='row'>";
foreach ($row as $i) {
$content .= "<div class='col-md-4 col-sm-6'>Item ". $i ."</div>";
}
$content .= "</div>";
}
array_chunk(range(1, $limit), 3)
将生成类似[[1, 2, 3], [4, 5, 6]]
的数组。这将使用稍多的内存,但我更喜欢更简单的代码。
答案 1 :(得分:1)
这样做可以应对$limit
$limit = 9;
$content = '';
for($i = 0; $i < $limit; $i++) {
if ($i % 3 == 0) {
$content .= "\n<div class='row'>";
}
// remove the extra `</div>` from this line
//$content.= "<div class='col-md-4 col-sm-6'>Item ". $i ."</div></div>";
$content.= "\n\t<div class='col-md-4 col-sm-6'>Item$i</div>";
if ($i % 3 == 2) {
$content .= "\n</div>";
}
}
//cope with odd numbers in $limit
if ( $i%3 != 0) {
$content .= "\n</div>";
}
echo $content;
结果:
<div class='row'>
<div class='col-md-4 col-sm-6'>Item0</div>
<div class='col-md-4 col-sm-6'>Item1</div>
<div class='col-md-4 col-sm-6'>Item2</div>
</div>
<div class='row'>
<div class='col-md-4 col-sm-6'>Item3</div>
<div class='col-md-4 col-sm-6'>Item4</div>
<div class='col-md-4 col-sm-6'>Item5</div>
</div>
<div class='row'>
<div class='col-md-4 col-sm-6'>Item6</div>
<div class='col-md-4 col-sm-6'>Item7</div>
<div class='col-md-4 col-sm-6'>Item8</div>
</div>
或者将$ limit设置为奇数,如5
<div class='row'>
<div class='col-md-4 col-sm-6'>Item 1</div>
<div class='col-md-4 col-sm-6'>Item 2</div>
<div class='col-md-4 col-sm-6'>Item 3</div>
</div>
<div class='row'>
<div class='col-md-4 col-sm-6'>Item 4</div>
<div class='col-md-4 col-sm-6'>Item 5</div>
</div>