如何使用php以块形式显示列表


How to present a list in chunks using php?

我想显示一个(平面(记录列表,分为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