我想知道是否有人可以帮我这个...... 基本上我正在尝试现代化我的网站的新闻系统,但我似乎无法限制在我的博客部分网站上的foreach循环中显示的帖子数量。我需要跳过第一个实例,因为它已在页面顶部提升。我尝试了各种谷歌搜索,但我得到了C ++ Perl和python的结果,真正令人恼火的是什么。我只需要一个简单的PHP解决方案。我将在下面弹出我的代码,看看是否有人可以提供帮助。感谢您提前帮助。请记住留下您的回答作为答案,以便我们可以在他们帮助时加以标记;)
<div class="view22 full" style="margin-top:0;">
<h3>Recent News and Announcements</h3>
<?php foreach ($articles as $article) {
?>
<div class="ah7_ clearfix">
<p class="date"><?php echo date('F j', $article['article_timestamp']); ?>, <?php echo date('Y', $article['article_timestamp']); ?></p>
<h3><a href="<?php echo $url.'/newsroom/'.$article['article_id']; ?>"><?php echo $article['article_title']; ?></a></h3>
</div>
<?php
}
?>
</div>
答案 0 :(得分:2)
我假设$ articles数组的键以0开头。如何修改循环:
foreach ($articles as $key => $article)
并检查$ key在开头是否为0?
if($key == 0)
continue;
如果数组键不同:创建一个新变量$ i,将其设置为0并在每个foreach循环迭代中将值增加1。
$i = 0;
foreach ($articles as $article) {
$i++;
if($i == 1)
continue;
elseif($i > 8)
break;
//the other code goes here
}
如果它基于SQL查询,则使用&#34; limit&#34;可能有助于减少负荷!
答案 1 :(得分:0)
要删除第一个实例,您可以在复制它或将其打印为特色新闻后手动取消设置该项目($ articles [0])。
要限制发布的数量,可以使用mysql LIMIT子句;
或者你可以做这样的事情
foreach($articles as $key => $article){
if($key===0)
continue;
if($key===8)
break;
echo $article;// or_do_whatever_youwant_with($article);
}
答案 2 :(得分:0)
您可以做一些事情:
如果$ articles是一个包含连续索引的数组数组,请使用for
循环而不是foreach
并执行类似
for ($i = 1; $i < 8 : $i++ ) {
// and access it like
$articles[$i]['some_index'] ...
}
如果不是,那么您可以使用外部计数器 说
$counter = -1;
foreach ( $articles as $article) {
$counter++;
if (!$counter) continue;
if ($counter > 7 ) break;
...// your code //
}
您可以使用LIMIT和OFFSET