第6章 データをまとめて扱う配列
6.2 配列の利用方法
配列を作成する方法には以下に示す4種類があります。配列を作成してから利用する場合、状況に応じて使い分ける必要がありますので、本節でしっかり学習していきましょう。
配列を作成する方法
①正数値をキーに利用(6.2.1で学習)
②文字列をキーに利用(6.2.2で学習)
③正数値をキーに利用(6.2.3で学習)
④文字列をキーに利用(6.2.3で学習)
6.2.1 正数値をキーにデータを1つずつ代入して作る配列と使用方法
配列を作る場合の最も基本となる、正数値をキー(添え字)にして、データを1つずつ代入して、配列を作る方法と使用方法について説明します。
書式:代入で配列を作る(正数値キーを利用)
配列にデータを代入する場合は、変数と同じように「=」を使います。その時の左辺には配列名だけではなく、[正数値キー]を指定する必要があります。正数値キーは省略が可能で、省略した場合は自動的にキーが0から順に割り当てられます。既にデータが入っている場合は、最大キー値の続きから順に割り当ててくれます。
凡例:代入で配列を作る(正数値キーを利用)
正数値キーを指定して代入する方法は決まった位置に値を入れたい場合に使用し、正数値キーを指定しないで代入する方法はデータを追加したい場合に利用されます。
凡例の配列にデータを代入するイメージは図6.2.1のようになります。
図 6.2.1:配列変数へ代入(正数値キー)
書式:配列要素の使用(格納データの参照)
凡例:配列要素の使用(格納データの参照)
配列も「$配列名[正数値キー]」の指定を行えば、変数と同じようにデータを参照することができます。逆にキーの指定が無いとデータを使用することができないので注意してください。
またデータの入れ替えも変数同様に行えますので合わせて覚えておいてください。
配列を利用するプログラム
配列に各データを格納し、その配列データをWebブラウザに表示して確認してみましょう。
ソース・フォルダー: myproj_intro/ch06
パッケージ: useArray.php
アクセスURL:http://localhost/myproj_intro/ch06/useArray.php
useArray.php
解説
このプログラムは5.3.2節のuseEscapeSequence.phpのプログラムと実行結果は同じです。異なっている点は画面に表示するデータを変数を使わずに、配列変数1つで扱っている点です。
2行目で配列変数$profileに、キー0を指定して名前のデータ「神田ハナコ」を代入しています。
3行目で配列変数$profileに、キー1を指定して身長のデータ「154.6」を代入しています。
4行目で配列変数$profileに、キーを指定しないで年齢のデータ「26」を代入しています。
5行目で配列変数$profileに、キーを指定しないで貯金のデータ「500」を代入しています。
配列へデータを代入するイメージは図6.2.2のようになります。データを代入するほど配列変数の中にデータが増えていき、並びは正数値キーの順番で保持されるようになります。
図 6.2.2:配列変数$profileへ正数値キーを指定して各データを代入
2~5行目で配列に用意したデータを13~15行目で利用して、画面に結果を表示しています。配列も変数と同じように「配列名[キー]」と指定することで、その中に代入されている値を利用することができます。また変数の展開も同様に利用できます。
以下の図6.2.3で13行目の処理イメージを例として示します。
図 6.2.3:配列要素の利用
ポイント
- 配列を作成する方法には正数値キーを指定して代入する方法と、省略して代入する方法がある。
- 配列の要素を利用したい時、キーを指定することで変数と同じように扱える。
- 配列変数の要素は文字列囲み内で変数の展開を利用することができる。
6.2.2 文字列をキーにデータを1つずつ代入して作る配列と使用方法
文字列をキー(添え字)にして、データを1つずつ代入して配列を作る方法と使用方法について説明します。
前項で学習した配列と異なり、指定した文字列キーをもとに格納したデータを関連付ける(連想できる)ため、「連想配列(れんそうはいれつ)」とも呼ばれます。
書式:代入で配列を作る(文字列キーを利用)
配列の作り方は、キーを文字列で作成する以外は正数値キーで作成する方法と同じです。キーは文字列なのでシングル、ダブルクォーテーションどちらを利用しても問題ありません。変数の展開を利用したい場合はダブルクォーテーションで指定する必要があります。
凡例:代入で配列を作る(文字列キーを利用)
キー文字列は変数名や配列名の命名規則はないので、どのようなものでも付けることができます。なるべく格納されているデータが連想できる名前をつけるのが一般的な使い方になります。
凡例の配列をデータに代入するイメージは以下のようになります。
図 6.2.4:配列変数へ代入(文字列キー)
文字列キーの配列要素を使用する方法は、「$配列名[‘文字列キー’]」と指定すれば代入した値を利用することができます。この仕組みはキーが正数値から文字列に変わっても同じです。
それでは文字列キーを利用した連想配列を利用したプログラムを作成してみましょう。
連想配列を利用するプログラム
連想配列に各データを格納し、その配列データをWebブラウザに表示して確認してみましょう。
ソース・フォルダー: myproj_intro/ch06
パッケージ: useAssociationArray.php
アクセスURL:http://localhost/myproj_intro/ch06/useAssociationArray.php
useAssociationArray.php
解説
このプログラムは前項のuseArray.phpのプログラムと実行結果は同じです。異なっている点は通常の配列を使用しているか、連想配列(文字列キー)を使用しているかになります。
2行目で配列変数$profileに、キー’name’を指定して名前のデータ「神田ハナコ」を代入しています。
3行目で配列変数$profileに、キー’身長’を指定して身長のデータ「154.6」を代入しています。
4行目で配列変数$profileに、キー’age’を指定して年齢のデータ「26」を代入しています。
5行目で配列変数$profileに、キー’貯金’を指定して貯金のデータ「500」を代入しています。
このように連想配列を利用すると、各要素にどのようなデータが入っているかを文字キーから分かり易くすることができます。
連想配列のデータ格納イメージは以下の図6.2.5通りです。連想配列は数値キーとは異なり、代入した順番でデータが管理されるようになります。
図 6.2.5:配列変数$profileへ文字列キーを指定して各データを代入
13~15行目で連想配列に代入した各要素を、初めに設定した文字キーを指定することで参照しています。正数値キーでも文字列キーでも参照方法は変わりません。
連想配列は通常配列よりも、さらに多くのデータを扱う場合に利用すると便利になります。正数値のキーでは後でソースコード見返した時に、どのようなデータを格納しているのが分かり難くなります。そこで文字キーで格納しておけば、どのようなデータを利用しているのかが分かり易くなります。
ポイント
- 配列を作成する方法には文字列キーを指定して代入する、連想配列がある。
6.2.3 配列をarray関数を利用して作ってみよう
これまで配列に1つずつデータを格納する方法を学習してきました。もう1つの方法は、PHPが初めから備えている組み込み関数「array関数」の利用で、データをまとめて配列に代入して作成することができます。
使い方によって通常の配列(正数値キー)と連想配列(文字列キー)のどちらも作成することができます。また、変数の型を配列型にしておく、初期化にも利用できます。
書式:array関数で配列(正数値キー)を作る
arrayの後ろ「( )」括弧内に配列に格納したいデータ数分を「,(カンマ)」区切りで並べていきます。このような書き方を行うと、最初のデータから正数値キー0を割り振って正数値キーの配列を作成してくれます。
書式:array関数で連想配列(文字列キー)を作る
連想配列で作成する方法は「’文字列キー名’ => データ」の形式のペアをカンマで区切って書いて並べていくだけです。キー名とデータの間の「=>」は半角の=(イコール)と半角の>(大なり)の記号は必ずくっつけて記述してください。
凡例:array関数で配列を作る
凡例の3つ目の使い方は$data変数の型を配列型にして、中身は空にしておくという少し特殊な使い方になります。データ件数の有無は関係なく、変数の型が配列型でないと困る場合に初期値として利用します。
array関数を利用するプログラム
array関数を利用して配列データを作成し、その配列データをWebブラウザに表示して確認してみましょう。
※花の名前の読み方は、次のページを参照して下さい。
ソース・フォルダー: myproj_intro/ch06
パッケージ: useArrayMethod.php
アクセスURL:http://localhost/myproj_intro/ch06/useArrayMethod.php
useArrayMethod.php
解説
3行目でarray関数を利用して、各月に咲く代表的な花のデータを配列変数$flowersに格納しています。
array関数の括弧内に並べた順番に0から正数値キーを割り振って配列を作成してくれます。
図 6.2.6: array関数を利用しての配列作成イメージ
6行目では表示したい花の月の4を、変数$monthに代入しています。
14行目で変数$monthと、4月の花の名前が格納されている$flowers[3]を参照し画面に結果を表示しています。
配列データを扱う「$flowers[$month – 1]」のように、ここで初めてみる仕組みが利用されています。
- キーに「変数(値)」を利用する。
- 「計算(引き算)」を利用してキーの値を変化させている。
以下の表6.2.1を参考に、「4月」の花のデータを参照したい場合は正数値キーは「3」を指定しなければならないのが分かります。配列の正数値キーは0から始まるので、月と正数値キーでは1ずれてしまいます。
そこでキーに変数の値と引き算をキー値に利用して、$flowers[$month – 1]と記述することで「4-1=3」から$flowers[3]になり4月の「桜」という要素を参照することができます。
表 6.2.1: 配列変数$flowersの格納データ一覧
今回のような「-(マイナス)」を使ったものは引き算となり、他にも足し算、掛け算、割り算も行えます。このようなプログラムの計算を行う方法は8章で詳しく紹介します。
ポイント
- 配列を作成する方法には組み込み関数arrayを利用した方法がある。
- array関数は使い方によって、通常の配列と連想配列の両方を作成することができる。
- 配列のキー値には数値や文字以外に、変数の値や計算を利用することもできる。