-1

次のような単純な 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

4 に答える 4

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

$index が配列の最後のインデックスと等しくならないように条件を変更します。それが 14 か 15 か (0 から始めるか 1 から始めるかによって異なります)。

于 2012-04-23T22:54:48.947 に答える
3

あなたが知っているなら、あなたは15の投稿を持っていて、5番目ごとに必要ですが、最後のものは必要ありません...つまり、5番目と10番目のもので「何かを作る」必要があるということですよね? では、それを確認してみませんか?

if($index == 4 || $index == 9)
于 2012-04-23T22:57:03.687 に答える
1

範囲演算子を確認してください。この種の状況では非常に便利です。

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

foreach (range(0, $index, 5) as $number) {
    // do something with $posts[$number]
}
于 2012-04-23T22:56:39.677 に答える
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];
}
}

これにより、最後の投稿がすべて削除され、5 つおきの投稿のみがエコーされます。

于 2012-04-23T23:11:21.603 に答える