目前我有一个页面输出为数据库中的每个人保存的一堆记录。因此,对于此页面上显示的每个人,他们的所有详细信息也会显示出来。
我现在要做的是正确格式化这些数据,以便在每个第3或第4个人之后插入一些HTML代码来打破数据并使其更容易阅读,例如灰色条表明数据是什么是为了。我不知道我怎么能这样做?
修改
我已将建议的代码添加到我的代码中,现在看起来像这样:
<div class="content">
<?php $i=0; ?>
<?php foreach ($members as $members) { ?>
<div class="repblock">
</div>
<?php
if (($i%4) == 0) { ?>
</div>
</div>
<div class="page" style="page-break-before: always;">
<div class="content">
<?php }
$i++; } ?>
</div>
并且建议的代码适用于某一点。发生的事情是第一个成员自己显示,然后四个记录显示在一个组中,然后它继续显示剩下的四个一组,直到记录用完为止,如下所示:
会员记录1
----------------
会员记录2
会员记录3
会员记录4会员记录5
----------------
会员记录6
会员记录7会员记录8会员记录9
----------------
会员记录10
会员记录11
为什么它在开头只显示一条记录,然后正确分组记录?
答案 0 :(得分:3)
如果没有代码示例,我将假设您正在使用标准for
循环来迭代数据。有了这个,您可以使用模数运算符%
来检查您所在的数字:
$numRecords = count($yourData);
for ($i = 0; $i < $numRecords; $i++) {
if (($i > 0) && (($i % 3) == 0)) {
// display a <br />, <hr />, whatever
}
// display stuff
}
如果您正在使用foreach
循环,则可以在其外部保留一个单独的计数器,并以相同的方式检查:
$i = 0;
foreach ($yourData as $singleRecord) {
if ((++$i % 3) == 0) {
// display a <br />, <hr />, whatever
}
// display stuff
}
答案 1 :(得分:2)
您可以使用模数运算符来确定每三分之一的索引。
if ($index % 3 == 0) {
// Every third.
}
答案 2 :(得分:1)
这很简单。
你必须保留一个计数器,为每个人增加一个计数器,只要它超过3或4,输出分隔符和重置计数器。
类似的东西:
$i = 0;
// for loop here
if(($i = $i%3) == 0){
echo '<hr />';
}
$i++;
// end for loop