配列のキー値をインデックス番号として繰り返しの回数で条件を変える。TwitterRESTAPIのタイムライン中にGoogle Adsenseを入れたい
目次
電車遅延なう(新しいタブで開く)さんを見ていると分かることですが、TwitterAPIで拾ってきたつぶやきの間にGoogle Adsenseが入っています。目視で確認したら、19個目のつぶやきのあとに1つあります。
これをお手本として、自分は10個目と20個目のつぶやきの下に、バナーを2回出現させてみたいと思います。
ただし、Google Adsenseのバナー広告は1ページあたり3つまで。そのうち1つはヘッダー部に固定で表示するものとします。
コード
先に結論から書くと、コードはこんな感じです。本当は1行目の上にお約束ごとがあります。詳しくは前回の記事(新しいタブで開く)をご覧ください。
<?php if(isset($results) && empty($results->errors)){ ?> <!-- 時刻の区切り表示のための変数 --> <?php $before = ""; ?> <!-- つぶやきの繰り返し表示 --> <?php foreach($results as $key => $tweet){ ?> <!-- 時刻の区切り表示 --> <?php $after = date('YmdH', strtotime($tweet->created_at)); ?> <?php if($before != $after) { ?> <span style="background:green"><?php echo date('Y/m/d H時', strtotime($tweet->created_at)) ; ?></span><br/><br/> <?php } ?> <?php echo date('Y-m-d H:i:s', strtotime($tweet->created_at)) ; ?></br> <?php echo $tweet->text; ?><br/><br/> <?php $before = $after; ?> <!-- アドセンスの表示 --> <?php if ($key == 9 || $key == 19){ ?> <span style="background:red; color:white; margin:20%"><?php echo "アドセンスのバナー"; ?></span><br/><br/> <?php } ?> <?php } ?> <?php }else{ ?> <?php echo "関連したつぶやきがありません。"; ?> <?php } ?>
上の画像では10個目のつぶやきの下に、”アドセンスのバナー”という文字列が、赤色の背景とともに表示されています。
基本的には、前回の記事でユーザータイムラインで表示されるつぶやきを、1時間ごとに区切った表示とほとんど同じです。
今回のポイント
ただし前回と違うところが2点あります。
1.配列内でインデックス番号を指定
まず7行目のforeach文の$resultsという配列で、キー値としてインデックス番号を指定しています。
2.$keyを変数とする
インデックス番号を指定することで、$keyを変数としてforeach文の中で、繰り返しの回数を条件としたif文(19行目)がつくれることになります。
個人的な感想
個人的には、配列内のキー値というのは、連想配列ちっくな文字列による指定しか知りませんでした。
キー値を指定することで、foreach文の繰り返しの回数によって様々な条件が付けられると、いろいろと面白いことができそうです。
〔参考サイト〕