PHP foreach 每五个项目循环一次


PHP foreach loop every fifth item

我有一个简单的foreach循环,如下所示:

foreach ( $posts as $index => $posts )

还有一个计数器:

if( $index % 5 + 1 == 5 ) {
//do something 
}

我每页有 15 个帖子,它应该每五个项目做一些事情,但不是在最后一个项目上,但我该怎么做?

所以它变成了:

POST
POST
POST
POST
POST
DO SOMETHING
POST
POST
POST
POST
POST
DO SOMETHING
POST
POST
POST
POST
POST
if( $index % 5 + 1 == 5 && $index != 14) {
//do something 
}

更改条件,使$index不等于数组中的最后一个索引。 无论是 14 还是 15(取决于您是从 0 还是 1 开始)。

如果你知道,你有 15 个帖子,需要每 5 个,但不是最后一个......这意味着你需要用第 5 和第 10 个"做点什么",对吗?那么为什么不检查一下呢?

if($index == 4 || $index == 9)

检查范围运算符...对于这种情况非常有用。

http://php.net/manual/en/function.range.php
foreach (range(0, $index, 5) as $number) {
    // do something with $posts[$number]
}

如果你不需要关联数组:

$posts=array(a,b,a,b,a,b,a,b,a,b,a,b,a,b,a);
for($i=0;$i<count($posts);$i++)
{
if($i % 5 + 1 == 5 && $i != count($posts) - 1)
{
echo $i." as ".$posts[$i];
}
}

这将删除每个最后一个帖子,并且只回显每五个帖子。