我有一个简单的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
答案 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];
}
}
这将删除每一个帖子,并且只回显每五个帖子。