删除foreach项目不能正确计数

时间:2015-02-06 18:49:05

标签: php foreach

<ul>
    <?php foreach (array_slice($items, 0, 3) as $item): ?>
        <?php if (!isset($item->story)): ?> <!-- hide story updates -->
          <li>
            <?php if (isset($item->message)) echo $item->message; ?>
          </li>
        <?php endif; ?>
    <?php endforeach; ?>
</ul>

我正在显示新闻Feed,只想显示没有故事更新的项目。所以我正在使用!isset检查是否存在故事项目,如果是,则隐藏该项目。

这很好用,但现在我试图在Feed中显示3个结果,但我认为故事项仍然在foreach中计算,所以当最后3个更新是故事项时,Feed中没有任何内容。

我看过this question,看起来就像我想要做的那样,但我不明白他从哪里得到了$ elementkey变量,它做了什么?

如何从foreach中删除该项目,并删除其计数,以便显示3个项目?

1 个答案:

答案 0 :(得分:2)

这应该适合你:

(这里我刚刚添加了一个$count变量,只有在消息发布后我才会增加。在3之后我打破了foreach)

<ul>
<?php $count = 0;
        foreach ($items as $item): ?>
    <?php if ($count >= 3) break; if (!isset($item->story)): ?> <!-- hide story updates -->
      <li>
        <?php if (isset($item->message)) {
                echo $item->message;
                $count++;
              }
        ?>
      </li>
    <?php endif; ?>
<?php endforeach; ?>
</ul>