PHP foreach循环每五个项目

时间:2012-04-23 22:52:01

标签: php

我有一个简单的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

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

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

http://php.net/manual/en/function.range.php

foreach (range(0, $index, 5) as $number) {
    // do something with $posts[$number]
}

答案 3 :(得分:0)

如果您不需要关联数组:

$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];
}
}

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