1. TOPTOP
  2. Webサービス
  3. PHP

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

|

php

電車遅延なう(新しいタブで開く)さんを見ていると分かることですが、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 } ?>

key_1

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

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

今回のポイント

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

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

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

2.$keyを変数とする

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

個人的な感想

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

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

〔参考サイト〕