PHP入門

連想配列とforeach構文

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
配列の中でも、商品にそれぞれ固有の「商品番号」がついている場合、例えば書籍にはISBNという世界共通の番号がつけられています。このような固有の情報をインデックスに使うときに便利なのが、「連想配列」です。そして、連想配列を扱う繰り返し構文がforeach構文になります。ここでは、連想配列の使い方を紹介しましょう。
講師:
10:39

字幕

続いては 連想配列と foreach 構文ということで配列のもう1つの応用例ですね、連想配列というものがあります。これとそれに関連するfor 構文としましてforeach 構文というものをご紹介していきたいと思います。配列というものは既に紹介しました。画面に表示されているのが、その配列を使ったサンプルのスクリプトです。配列というのを使えばこのように北海道や東京都というような都道府県ですとか商品の一覧であったりですとかそういった数字ではないものを並べる時に使うことができます。今、例えば、この配列の場合北海道には0という背番号所謂、インデックスと言われるものそして東京都には1番沖縄県には2番といった様な形でそれぞれインデックスが割り振られます。ですが、例えば、商品等の場合そういった連番ではなくて商品管理番号のような独特な数字の並び等で管理されている場合もあるかもしれません。例えば、こちらある書籍の一覧ですがこちらの書名に対してISBN 番号と呼ばれる世界中で統一された書籍の管理番号というのがあります。それが割り振られています。書店等はこの ISBN 番号を使って各書籍を管理しているのですけど例えば、今、この3冊の書籍を管理する時に0、1、2というような連番ではなくてこの ISBN 番号がそのまま使えれば非常に便利です。 このように配列の中でもこちらのインデックスを自由にするものこれを連想配列と呼びます。連想の連想は、連想するというような一般的な連想という言葉を使います。連想配列を使うと、どのような事ができるのか少し紹介していきましょう。それでは、こちらの MAMP フォルダのhtdocs フォルダの中に1つフォルダを作ります。ここでは、lesson03-05 としましょう。そして、このファルダの中にテンプレートのファイル群をコピーしていきます。index.html というファイルはindex.php に名前を変えていただいてこれを DreamWeaver で編集していきます。では、まずは、ここに「連想配列」ということでタイトルをつけていきましょう。そして、この content の中にまずはこの連想配列を定義していきます。ここでは book を管理する配列として複数形である books という形にします。array という所までは同じですがここで書き方が少し異なってきます。まず、こちら連想配列のインデックスとして使うISBN 番号を記述します。そしてそれに対する値がこちらの書名ですと言うことを示すために少し変わった記号を記述します。 =の後に<記号を記述します。これは実は比較演算子のときに紹介した記号に似ているのですけどちょっと意味合いが違うので気をつけてください。これは単に矢印を字で表したものです。ここに書名を記述します。ちょっと一度このまま閉じましょう。これで連想配列が1要素できました。こちらに書かれているのが連想配列のインデックスになるものそしてこちらに書かれているのがその連想配列の値になるものです。その間にこのように矢印が書かれていてこのインデックスに対してこの値が関連付けられていますよ連想しますよということでこの矢印を使っていきます。後はこの組み合わせでいくつでも値を増やすことができます。もう1つ増やしてみましょう。続いて、こちらの ISBN 番号に対してこちらの書籍の名前こちらの ISBN 番号に対してこちらの書名ということでこのようにオリジナルのインデックスで連想配列を作ることができました。では、続いて、今作ったこの配列を繰り返しの処理を使って書き出すにはどうしたらいいかなんですがこれまでご紹介してきた while 構文やfor 構文でもこの連想配列を扱うことは一応できます。しかし非常に面倒くさくなってしまいますので通常このような連想配列を使った場合にはforeach 構文という少し新しい構文を使っていきます。 では実際に書いてみましょう。ここではリストを構成してみたいと思いますのでUL という要素でマークアップをしていきましょう。そして UL で囲っていきましてここに li タグを書いていきます。まずその前に foreach を書いていきましょう。ここでは books とします。そして as として $ISBN そして矢印です。さらに bookname といったような形で書いていきます。続いて、こちら li を書きまして、ここにphp の後に print として $ISBN ですね続いて このように例えば書きましてprint bookname という形にしていきたいと思います。そして最後の所にはendforeach という風に書きます。この繰り返し構文の場合所謂、更新の処理ですとか初期化の処理というものが必要ありません。この1文だけで繰り返しの構文が出来上がります。では、これで一度動きを確認してからスクリプトの内容を確認していきましょう。ファイルを保存していただいてMAMP を起動します。Apache が起動していることを確認していただいたらWeb ブラウザでこのようなアドレスにアクセスします。 localhost:8888/lesson03-05 のindex.phpこちらにアクセスをしてみます。そうしますと、連想配列ということでISBN の番号とそれに対する書名が記述されています。では、例えば、こちらちょっと適当な情報になりますが1、2、3、4、5である書籍というような形でデータを増やします。必ずこのセットで増やしていかなければなりません。このように増やしてあげれば、画面の方にもその増やした情報が反映されるという形です。では、スクリプトの内容を少し詳しく見ていきましょう。まず、先ほどのとおり、この books という変数には連想配列がセットされています。この ISBN に矢印、そして書籍の名前ISBN に書籍の名前ISBN に書籍の名前というセットでずっとこのように繰り返されていきます。そして foreach という構文なのですがこれはまず始めにこの連想配列の変数をセットします。そして as という風に書きます。この as というのは決まり文句です。そのまま as と書いてください。そしてその後ですが、まず、最初に書く変数、ここに連想配列のインデックスがセットされます。なので、ここでは、ISBN 番号ですのでISBN という風に書きます。 そして先ほどセットしたのと同じような形で矢印を書いて最後にここに、今度はこちらの値がセットされる変数名を書きます。そうしますと、この foreach という繰り返し構文はbooks という連想配列の内容を1つずつ前から取り出していきながらISBN と bookname という変数にそれぞれの内容を記憶させていきます。なので、この繰り返しの中では、ISBN や bookname という変数名を使うことができるのです。ここで、プリントしている ISBN というのは最初に books から取り出した1件目の ISBN 番号が入ります。それが画面に出力されるbookname に1つ目の書籍の名前が入ってそれが画面に出力されるという仕組みです。そして endforeach で20 行目に戻されます。続いて2件目が取り出されて2件目の ISBN が画面に出力され2件目の書籍名が画面に出力されるそして3件目が出力され4件目が出力されて5件目 データがありません。なので、この foreach のbooks というのは終了条件ですね、データが無くなるという条件が満たされてしまいましたのでこの中の処理はとばされて、次の 26 行目までジャンプするという仕組みになっています。 この foreach という構文は連想配列の時しか使われません。そして逆に連想配列を使う時にはほぼ間違いなくこの foreach を使うことになります。連想配列と foreach はセットで覚えておくと非常に便利に使うことができるのではないかと思いますので是非ここで覚えておくと良いでしょう。

PHP入門

このコースでは動きのあるWebサイトでショッピング、友人との写真を共有、キーワードによる情報検索など便利な仕組みを作るための技術であるPHPについて解説します。これまでプログラミングに触れたことがない方でも、ちょっとしたプログラムを自分で作ることができるようになります。

4時間56分 (29 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月29日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。