使用PHP为记录集中的每三条记录输出特定代码

使用PHP为记录集中的每三条记录输出特定代码,php,loops,Php,Loops,目前,我有一个页面,输出数据库中每个人的一系列记录。因此,对于此页面上显示的每个人,他们的所有详细信息也都会显示出来 我现在要做的是正确地格式化这些数据,以便在每三或四个人之后插入一些HTML代码来分解数据并使其更易于阅读,例如一个灰色的条说明数据的用途。我不知道我怎么能做到这一点 编辑 我已将建议的代码添加到我的代码中,现在看起来如下所示: <div class="content"> <?php $i=0; ?> <

目前,我有一个页面,输出数据库中每个人的一系列记录。因此,对于此页面上显示的每个人,他们的所有详细信息也都会显示出来

我现在要做的是正确地格式化这些数据,以便在每三或四个人之后插入一些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>

代码建议在一定程度上有效。发生的情况是,第一个成员单独显示,然后在一个组中显示四条记录,然后继续以四条为一组显示其余的记录,直到记录用尽,如下所示:

    <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


为什么它在开始时只显示一条记录,然后对记录进行正确分组?

您可以使用模数运算符确定每三分之一的索引

if ($index % 3 == 0) {
    // Every third.
}

如果没有代码示例,我将假设您正在使用标准的
for
循环来迭代数据。通过此操作,您可以使用模数运算符
%
,检查您使用的数字:

$numRecords = count($yourData);
for ($i = 0; $i < $numRecords; $i++) {
    if (($i > 0) && (($i % 3) == 0)) {
        // display a <br />, <hr />, whatever
    }

    // display stuff
}
这很简单

您必须保留一个计数器,为每个人增加它,每当它穿过3或4时,输出分隔符并重置计数器

比如:

$i = 0;
// for loop here
if(($i = $i%3) == 0){
    echo '<hr />';
}
$i++;
// end for loop
$i=0;
//在这里循环
如果($i=$i%3)==0){
回声“
”; } $i++; //循环结束
谢谢,这对我很有帮助。但是它产生了一个新问题,我已经把它添加到问题中。@mickburkejnr从
开始$I=1而不是0。