配列のキー値をインデックス番号として繰り返しの回数で条件を変える。TwitterRESTAPIのタイムライン中にGoogle Adsenseを入れたい

php

電車遅延なうさんを見ていると分かることですが、TwitterAPIで拾ってきたつぶやきの間にGoogle Adsenseが入っています。目視で確認したら、19個目のつぶやきのあとに1つあります。

これをお手本として、自分は10個目と20個目のつぶやきの下に、バナーを2回出現させてみたいと思います。

ただし、Google Adsenseのバナー広告は1ページあたり3つまで。そのうち1つはヘッダー部に固定で表示するものとします。

目次

コード

先に結論から書くと、コードはこんな感じです。本当は1行目の上にお約束ごとがあります。詳しくは前回の記事をご覧ください。

[php]
<?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 } ?>
[/php]

key_1

上の画像では10個目のつぶやきの下に、”アドセンスのバナー”という文字列が、赤色の背景とともに表示されています。

基本的には、前回の記事でユーザータイムラインで表示されるつぶやきを、1時間ごとに区切った表示とほとんど同じです。

今回のポイント

ただし前回と違うところが2点あります。

1.配列内でインデックス番号を指定

まず7行目のforeach文の$resultsという配列で、キー値としてインデックス番号を指定しています。

2.$keyを変数とする

インデックス番号を指定することで、$keyを変数としてforeach文の中で、繰り返しの回数を条件としたif文(19行目)がつくれることになります。

個人的な感想

個人的には、配列内のキー値というのは、連想配列ちっくな文字列による指定しか知りませんでした。

キー値を指定することで、foreach文の繰り返しの回数によって様々な条件が付けられると、いろいろと面白いことができそうです。

〔参考サイト〕

php

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次