1

SQL クエリから生成されたデータの配列を表示しようとしています。これはうまくいきます。ただし、id 属性 = 値の項目を 1 つ表示したくありません。コード:

<?php foreach($sheet_list as $key => $sheet) : ?> 
        <?php if($sheet['id'] == $selected1){unset ($sheet_list[$key]);}?>
        <tr>
            <td><?=$sheet['title'];?></td>
            <td><?php echo date('d F Y', strtotime($sheet['startDate'])); ?></td>
            <td><?php echo date('d F Y', strtotime($sheet['endDate'])); ?></td>
            <td><input type="radio" name="selected2" id="selected2" value="<?=$sheet['id'];?>" <?php 
            if ($key == 0) echo ' checked ';
            ?>/></td>
        </tr>
        <?php endforeach; ?>

したがって、これは問題のないテーブルを生成していますが、1つの配列項目とそのすべての属性を表示したくない foreach ループにあります。ここでは、「id」フィールドが変数$selected1 に = であり、ここに投稿された多くの質問を見てきました。ただし、1 次元または 2 次元配列の場合は多くなります。助けてください。

4

2 に答える 2

1

あなたは近いです、continue;代わりに使用する必要がありますunset()

<?php if($sheet['id'] == $selected1){ continue; } ?>

continuePHP Docsは、ループを次の反復にスキップさせ、現在の反復を効果的にスキップします。これはあなたがやりたいことです。

ここでの利点は、配列からそのアイテムを削除する場合$sheet_listとは異なり、配列を変更しないことです。unset()

于 2012-08-01T14:15:36.197 に答える
0

本当に設定を解除したい場合は$sheet_list[$selected1]、ループに入る前に解除してみませんか?

このアイテムの出力をスキップしたいだけの場合は、nickb の提案に従って continue を使用してください。

于 2012-08-01T14:17:17.323 に答える