2

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

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

为什么一开始只显示一条记录,然后正确分组记录?

4

3 回答 3

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
}
于 2012-10-22T12:54:31.583 回答
2

您可以使用模运算符来确定哪个索引是每三分之一。

if ($index % 3 == 0) {
    // Every third.
}
于 2012-10-22T12:53:58.897 回答
1

这很简单。

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

就像是:

$i = 0;
// for loop here
if(($i = $i%3) == 0){
    echo '<hr />';
}
$i++;
// end for loop
于 2012-10-22T12:57:42.343 回答