我想显示一个(平面(记录列表,分为3个项目,如下所示:
<div class="wrapper">
<div id="item1"></div>
<div id="item2></div>
<div id="item3"><div>
</div>
<div class="wrapper">
<div id="item4"></div>
<div id="item5></div>
<div id="item6"><div>
</div>
这些项1到n将从数据库查询中检索。
问题出在包装器div上。似乎我需要在n个卡盘中切开一个foreach
?
我能推一下吗?
$end = 20;
for($count = 1; $count <= $end; $count++){
if(($count % 3) == 1)
echo '<div class="wrapper">';
echo '<div id="item'.$count.'"></div>';
if(($count % 3) == 0 || $count == $end)
echo '</div>';
}
EDIT(根据注释中的请求将HTML与PHP分离(:
$end = 20;
for($count = 1; $count <= $end; $count++){
if(($count % 3) == 1){
?>
<div class="wrapper">
<?php
}
?>
<div id="item<?=$count?>"></div>
<?php
if(($count % 3) == 0 || $count == $end){
?>
</div>
<?php
}
}
<?php
function renderWrapperStart($i) {
if ($i % 3 !== 0) {
return;
}
?>
<div class="wrapper">
<?
}
function renderWrapperEnd($i) {
if ($i % 3 !== 0 || $i == 0) {
return;
}
?>
</div>
<?
}
function renderItem($i, $id, $content) {
?>
<div id="<?= $id ?>"><?= $content ?></div>
<?
}
$items = array(
'item1' => 'content 1',
'item2' => 'content 2',
'item3' => 'content 3',
'item4' => 'content 4',
'item5' => 'content 5',
'item6' => 'content 6'
);
$i = 0;
foreach ($items as $id => $content) {
renderWrapperEnd($i);
renderWrapperStart($i);
renderItem($i, $id, $content);
$i++;
}
renderWrapperEnd($i);
?>
输出为:
<div class="wrapper">
<div id="item1">content 1</div>
<div id="item2">content 2</div>
<div id="item3">content 3</div>
</div>
<div class="wrapper">
<div id="item4">content 4</div>
<div id="item5">content 5</div>
<div id="item6">content 6</div>
</div>
这就是您想要的吗?
for($i=1 ; $i<= n ; $i++){
if($i%3 == 0) {
echo '<div class="wrapper">';
}
echo '<div id="item'.$i.'"></div>';
if($i%3 == 0) {
echo '</div>';
}
}
你的意思是?
array_chunk($arr, 3);
http://www.php.net/manual/en/function.array-chunk.php