HTML→PHP ループと配列を学びつつコードを整理する

1,060 view

HTMLは書けるようになってきて、PHPにも手を出してみたけれど、 一体コードのどこでPHPプログラムを使うのか分からない。 そういう人(私とか)向けに、ループを作成することでコードをまとめられるというちょっとした使用法を書きます。配列の勉強にもなります。

実際のコード

<ul>
  <li>りんご</li>
  <li>バナナ</li>
  <li>イチゴ</li>
  <li>ぶどう</li>
</ul>

普通のリストです。 上のような形でも問題はありませんが、 項目ごとに違う部分を変数にまとめて、 共通部分はループさせるという風に変更してみます。

<ul>
  <?php
    $fruits = array(
      'りんご',
      'バナナ',
      'イチゴ',
      'ぶどう',
    );
  ?>
  <?php foreach( $fruits as $str ): ?>
    <li><?php echo $str; ?></li>
  <?php endforeach; ?>
</ul>

foreachで配列の要素全てを1つずつループします。 (foreachが分からない人は調べましょう。) この形であれば要素の中身が変わっても配列を変更するだけで済みますし、 <li>にクラスを付けたりといったループ内での変更があっても修正は1箇所だけで済みます。

変更したい箇所が複数ある場合

連想配列や多次元配列を使用することで、複数の項目にも対応できます。 ・元コード

<ul>
  <li>りんごの値段は1個120円です。</li>
  <li>みかんの値段は5個100円です。</li>
  <li>ぶどうの値段は1房400円です。</li>
</ul>

・ループ化後

<ul>
  <?php
    $fruits = array(
      'りんご' => array(
        '数' => '1個',
        '値段' => '120円',
      ),
      'みかん' => array(
        '数' => '5個',
        '値段' => '100円',
      ),
      'ぶどう' => array(
        '数' => '1房',
        '値段' => '400円',
      ),
    );
    foreach( $fruits as $name => $arr ) {
      $unit = $arr['数'];
      $price = $arr['値段'];
      echo '<li>' . $name . 'の値段は' . $unit . $price . 'です。';
    };
  ?>
</ul>

このように、変更する可能性のある部分をより分かりやすく書くことができます。 この例では元のリストの文章が単純なのでループ化した方が長くなってしまいますが、繰り返す部分が大きくなるほどループの恩恵を感じられると思います。 理解できるようになったらより複雑な部分にも挑戦してみましょう。

\ SNSでシェア /

WRITER

nakaya

制作部 nakaya

1990年生まれ。新潟出身。
16年8月入社。
趣味:スキー、卓球、バドミントン
犬が好き。