删除的 foreach 项目不能正确计数

removed foreach item doesn't keep count correctly

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

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

这非常有效,但现在我正尝试在提要中显示 3 个结果,但我认为故事项目仍在计算在 foreach 中,因此当最后 3 个更新是故事项目时,没有显示在饲料。

我已经阅读 this question 这看起来像我正在尝试做的,但我不明白他从哪里得到 $elementkey 变量,它有什么作用?

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

这应该适合你:

(这里我刚刚添加了一个 $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>