2

現在、データベース上の各人について保持されている一連のレコードを出力するページがあります。したがって、このページに表示されるすべての人について、すべての詳細も表示されます。

私が今やろうとしているのは、このデータを正しくフォーマットすることです。これにより、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>

そして、提案されたコードはある程度機能します。何が起こっているのかというと、最初のメンバーが単独で表示され、次に4つのレコードがグループに表示され、次に次のように、レコードがなくなるまで残りのメンバーが4つのグループに表示され続けます。

メンバーレコード1
----------------
メンバーレコード2
メンバーレコード3
メンバーレコード4
メンバーレコード5
----------------
メンバーレコード6
メンバーレコード7
メンバーレコード8
メンバーレコード9
----------------
メンバーレコード10
メンバーレコード11

最初に1つのレコードだけを表示してから、レコードを正しくグループ化するのはなぜですか?

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

モジュラス演算子を使用して、3 分の 1 のインデックスを特定できます。

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 に答える