使用属性从多维数组中删除项目

时间:2012-08-01 14:11:35

标签: php codeigniter

我正在尝试显示从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 我在这里发现了很多问题,但是对于一维或二维数组来说很多。 请帮忙。

2 个答案:

答案 0 :(得分:1)

即将结束,您应该使用continue;代替unset()

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

continuePHP Docs使循环跳转到下一次迭代,有效地跳过当前迭代,这就是你想要做的。

这样做的好处是,您永远不会修改$sheet_list数组,而不是unset(),您将从数组中删除该项。

答案 1 :(得分:0)

如果你真的想取消设置$sheet_list[$selected1],为什么不在进入循环之前就这样做呢?

如果您只想跳过此项目的输出,请按照nickb的建议使用continue。