Web言語のお勉強~ど素人が往く~

かつてVB6を1年くらい触った事があるだけのど素人がWeb言語に挑戦します。勉強結果を随時発表します。

PHPのお勉強「配列とループ文&画像表示」


本日のお題は配列とループ文です。

ループの勉強3日目です。

本日のPHP講師にはid:m_shige1979先生をお呼びしております。
先生よろしくお願いします。

id:m_shige1979先生


forやwhileで回数を指定する場合は予めcount文の結果を変数に格納してから使用した方がパフォーマンス的にはちょっとだけ速くなります。
今回みたいに100回以下なら問題ないけど…

ふむふむ。

確かに配列の配列数を取得する「count()関数」をループ内で使ってしまうと、何度もcount()が呼び出されて非効率ですね。
100回以下程度のループなら良いのでしょうが、これが100万回のループとかになると無視できない遅さの原因になりかねません。(その前に、100万回ループは処理を見直すべきですね(^^;)
プログラムが複雑化する前に、先にこういった対応はしておいた方がよいですね。

id:m_shige1979先生、教えて頂きましてどうもありがとうございます(^^)/

プログラミング

さてさて、本日は画像と名称を出力してみましょう!

00:40 実装開始。

・・・

00:54 実装完了。

14分で実装できました。
画像のURL取ったりで時間が掛かりました(^^;

動作画面

f:id:MoneyReport:20140319005802p:plain

ソースコード

<?php
    $arrayImg = array('http://omt.shinobi.jp/images/hatena_ninja_l.png',
                      'http://omt.shinobi.jp/images/twitter_tweet_ninja_l.png',
                      'http://omt.shinobi.jp/images/google_plusone_ninja_l.png',
                      'http://static.evernote.com/site-mem-32.png',
                      'http://omt.shinobi.jp/images/pocket_ninja_l.png',
                      'http://omt.shinobi.jp/images/tumblr_icon_blue_l.png',
                      'http://omt.shinobi.jp/images/rss_button_l.png');

    $arrayName = array('はてなブックマーク',
                       'ツイッター',
                       'ググタス',
                       'エバーノート',
                       'ポケット',
                       'タンブラー',
                       'アールエスエス');

    $imgCnt = count($arrayImg);
    $nameCnt = count($arrayName);

    // TABLE枠組み
    echo '<table>';

    for ($i = 0; $i < $imgCnt; $i++)
    {
        // もう一方のカウントオーバーでもやめる
        if ($i > $nameCnt)
        {
            return;
        }
        
        echo '<tr><td>';
        echo '<img src='.$arrayImg[$i].'>';
        echo '</td><td>';
        echo '<b>'.$arrayName[$i].'</b>';
        echo '</td><tr>';
    }

    echo '</table>';
?>

おぉ!結構きれいに出せた!
成功成功♪

Finale 2012 アカデミック版ガイドブック付属

Finale 2012 アカデミック版ガイドブック付属