-1

現在、すべてのデータベースエントリをエコーアウトするこのコードがありますが、dbエントリの最初の値がaの場合、エントリをエコーアウトするのはZFでどのように見えるのでしょうか。

コード:

<table>
    <?php foreach($this->clubs as $clubs) : ?>
    <tr>
        <td><a href="<?php echo $this->url(array('controller' => 'club-description', 'action' => 'index', 'club_id' => $clubs->id));?>">
        <?php echo $this->escape($clubs->club_name);?></a></td>
        <td><?php echo $this->escape($clubs->rating);?></td>
    </tr>
    <?php endforeach; ?>
</table>

ありがとう

リック

4

1 に答える 1

0

したがって、あなたのコメントに基づくと、ページ上の文字でクラブをグループ化したいと思うようです。データベースクエリでアルファベット順に並べられていると仮定すると、これを行う最も簡単な方法は、ループ内の最後のクラブの最初の文字を格納する変数を保持することです。次に、各反復で、現在のクラブの最初の文字を前のクラブの最初の文字と比較します。それらが異なる場合は、新しい見出しを出力します。

コードを使用すると、これは次のようになります。

<?php
$previousLetter = false;
?>
<table>
<?php foreach($this->clubs as $clubs) : ?>
    <?php
    $firstLetter = substr($clubs->_club_name, 0, 1);
    if ($firstLetter != $previousLetter) {
    ?>
    <tr>
        <td><?php echo $firstLetter; ?></td>
    </tr>
    <?php } ?>
    <tr>
        <td><a href="<?php echo $this->url(array('controller' => 'club-description', 'action' => 'index', 'club_id' => $clubs->id));?>">
        <?php echo $this->escape($clubs->club_name);?></a></td>
        <td><?php echo $this->escape($clubs->rating);?></td>
    </tr>
    <?php $previousLetter = $firstLetter; ?>
<?php endforeach; ?>
</table>
于 2012-04-23T14:57:38.543 に答える