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; ?>

所以这会产生一个很好的表,但是它在 foreach 循环中,我不想显示 1 个数组项及其所有属性,其中“id”字段 = 变量$selected1 我在这里看到了很多问题,但是对于一维或二维数组来说很多。请帮忙。

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 回答