Php 已删除的每个项目不包含';我不能正确计数

Php 已删除的每个项目不包含';我不能正确计数,php,foreach,Php,Foreach,我正在显示一个新闻提要,只想显示没有故事更新的项目。所以我在用!i设置以检查是否存在故事项,如果存在则隐藏该项 这非常有效,但现在我尝试在提要中显示3个结果,但我认为foreach中仍在计算故事项,因此当最后3个更新是故事项时,提要中不会显示任何内容 我已经读过这篇文章,看起来像我要做的,但我不明白他从哪里得到$elementkey变量,以及它的作用是什么 如何从foreach中删除项目,并删除其计数,以便显示3个项目?这应该适用于您: (这里我刚刚添加了一个$count变量,我只在发布消息时增

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

这非常有效,但现在我尝试在提要中显示3个结果,但我认为foreach中仍在计算故事项,因此当最后3个更新是故事项时,提要中不会显示任何内容

我已经读过这篇文章,看起来像我要做的,但我不明白他从哪里得到$elementkey变量,以及它的作用是什么


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

这应该适用于您:

(这里我刚刚添加了一个
$count
变量,我只在发布消息时增加该变量。在3之后,我中断了foreach)


请向我们展示您的代码,您尝试在drupal.module文件中实现一个函数中控制的3个poststats的限制,但也可以使用我刚才添加到questionand中的array_slice来实现。。为什么你认为它们不会被计算?。当最后3个项目没有故事时,它会显示3个结果,但当一个故事在foreach中时,只显示2个项目,或者没有项目display@Collins当然这是预期的行为。。您没有对
$items
数组进行有条件的切片。。所以你要循环三个项目。。可能包含也可能不包含storyYes!完美的非常感谢你
<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>
<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>