如何跳过 foreach 循环中的第一个实例并将其限制为 8?
How to skip the first instance in a foreach loop and limit to 8?
我想知道是否有人可以帮我解决这个...
基本上我正在尝试使我的网站的新闻系统现代化,但我似乎无法限制在网站博客部分的 foreach 循环中显示的帖子数量。我需要跳过第一个实例,因为它已经在页面顶部进行了提升。我尝试了各种 google 搜索,但我得到的是 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>
要删除第一个实例,您可以在复制该项目($articles[0])或将其打印为特色新闻后手动取消设置。
要限制 post 的数量,您可以使用 mysql LIMIT 子句;
或者你可以这样做
foreach($articles as $key => $article){
if($key===0)
continue;
if($key===8)
break;
echo $article;// or_do_whatever_youwant_with($article);
}
我假设 $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 查询,使用 "limit" 可能有助于减少负载!
您可以做几件事:
如果您的 $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
更改 Mysql 查询以仅提供所需的数据
我想知道是否有人可以帮我解决这个... 基本上我正在尝试使我的网站的新闻系统现代化,但我似乎无法限制在网站博客部分的 foreach 循环中显示的帖子数量。我需要跳过第一个实例,因为它已经在页面顶部进行了提升。我尝试了各种 google 搜索,但我得到的是 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>
要删除第一个实例,您可以在复制该项目($articles[0])或将其打印为特色新闻后手动取消设置。
要限制 post 的数量,您可以使用 mysql LIMIT 子句;
或者你可以这样做
foreach($articles as $key => $article){
if($key===0)
continue;
if($key===8)
break;
echo $article;// or_do_whatever_youwant_with($article);
}
我假设 $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 查询,使用 "limit" 可能有助于减少负载!
您可以做几件事:
如果您的 $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
更改 Mysql 查询以仅提供所需的数据