2016-11-30 7 views
0

私はforeachループを表示していますポストを持っています。この中で私はいくつかの広告ブロックを投げたいと思います。挿入ランダムなブロックが

私は問題なく働い投稿や広告ブロックを持っています。投稿は配列から来ており、広告ブロックは手動で挿入されています。私はforeachループにこれらの広告に投げていますか

私は見ていしゃっくりがあります。私はそれを追加したいが、投稿自体を中断しないでください。それが私が経験しているものです。

私は3つの広告ブロックとページあたり12件の記事を持っています。ページが読み込まれると合計15個のブロックがあり、代わりに9個になるはずです。これらの広告も静的ではありません - これらのブロックは合計15個のブロック内のどこにでも配置されます。ここで

は、私が使用しているスクリプトのダウン迅速な実行が(読者がダイジェスト版)です。

あまりにも複雑なし
$i = 0; 
foreach ($posts AS $post) {
 
    $i++;
 
    if ($adblock == $i) { 
     //insert advertisement block 
    } 
    else if ($adblock == $i) { 
     //insert advertisement block 
    } 
    else if ($adblock == $i) { 
     //insert advertisement block 
    } 
    else { 
     //insert post block 
    }
 
} 
+2

使用モジュラス。 'if(($ i%3)== 0){//広告を挿入}' –

+0

これは完璧で、それを行ってくれます!!ありがとう。 –

答えて

1

ページあたりのポスト/ ADVの数が静的なものである場合、あなたはこのようなあなたのADVを配置するために、簡単な数学を使用することができます。

$i=0; 
foreach($posts as $post){ 
    $i++; 

    if($i%3==0) { /* insert additional adv block */ } 

    /* insert post block at anytime*/ 
} 

あなたは($を変更することができますi%3 == 0)を他の数字に置き換えます。 3つでは、3つの記事ごとにadvが得られます。作る、それは($ I%2 == 0)、あまり必要作り、より多くのADVを必要とすること($ I%4 == 0)、など

+1

'if/else'であってはいけません。次の投稿でadvをフォローするだけで、ELSEではポスト自体をスキップします。しかし、その考え方は大丈夫です: 'if($ i%3 == 0){/ * insertブロック* /}/*投稿ブロック* /' – dognose

+0

あなたのご意見ありがとうございました。そこに他の人がいてはいけません。完全で無作為で来ます! –

関連する問題