2015-02-06 44 views
1
<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来检查故事物品是否存在,并且如果它是隐藏物品。删除的每个项目不会保持计数正确

这个工作完美,但现在我试图在Feed中显示3个结果,但我认为故事项目仍然在foreach中计数,所以当最近3次更新是故事项目时,Feed中没有任何内容显示。

我已阅读this question这看起来像我想要做的,但我不明白他从哪里得到$ elementkey变量,以及它做了什么?

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

+1

请告诉我们您的代码,你试图实现3个帖子的限制 – Rizier123 2015-02-06 18:51:48

+0

它在一个函数中控制在一个drupal .module文件中,但是同样可以使用array_slice,我刚刚添加到问题 – Collins 2015-02-06 18:55:26

+0

和...为什么你会认为他们wouldn不算数?.. – 2015-02-06 18:55:48

回答

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

是的!完善!非常感谢你 – Collins 2015-02-06 19:00:10