どーも、もんたです。
前回の記事では、PHPの配列について学びましたね。
本日も引き続き、PHPですね。
今回は、連想配列というものについて学んでいこうと思います。
それでは、早速進めていこう。
連想配列とは?
連想配列とは、複数のデータを管理する際、各々の値それぞれに名前を付けて管理することができる箱のこと。
複数のデータを管理するのなら、配列で十分じゃないの?と思うかもしれないが、
配列はインデックス番号が割り振られることで値を管理していたのに対して、連想配列ではインデックス番号ではなくキーに名前を付けて紐づけることができる。
キーで名前を付けることによって、その値が何なのか分かりやすく管理することができる。
つまり連想配列の値を呼び出す際は、任意のキーを指定して呼び出すことになる。
連想配列の書き方
連想配列の書き方についてだが、連想配列も配列と同様2つの書き方がある。
array()
1つ目のarray()での記述方法。
1 2 3 4 5 |
$連想配列名 = array( キー => 値, キー => 値, キー => 値 ); |
このようにarray()の中で、「キー」部分に任意の名前を記述した後「=>」で繋ぎ、「値」部分にその値となるデータを記述する。
また、キーには文字列を指定する場合が多いと思うが、
その際は「” “」(ダブルクォーテーション)or「’ ‘」(シングルクォーテーション)が必須だ。数値を指定する場合は必要ない。
配列同様、それぞれのデータ間は「,」(カンマ)で区切り、末尾には「;」(セミコロン)を記述忘れのないよう注意。
それでは実際の例に当てはめて見てみよう。
1 2 3 4 5 |
$user = array( "name" => "もんた", "age" => 26, "from" => "日本" ); |
こうすることで、連想配列userのそれぞれの値に任意のキーを割り当てられたはずだ。
[ ]角括弧
2つ目は、[ ]角括弧での記述方法となる。
1 2 3 4 5 |
$連想配列名 = [ キー => 値, キー => 値, キー => 値 ]; |
[ ]角括弧の中は、上記のarray()と同じ要領でそれぞれ記述する。
これを実際の例を当てはめてみると以下のように書くことができる。
1 2 3 4 5 |
$user = [ "name" => "もんた", "age" => 26, "from" => "日本" ]; |
やはりarray()より更にシンプルになる。
連想配列の値を呼び出す
では、連想配列に格納されたそれぞれの値を呼び出す方法について。
1 |
$連想配列名[キー]; |
連想配列名を指定した後、「キー」部分には呼び出したい値と紐付けているキーの名前を記述することで、その値を呼び出すことができる。
実際の例を当てはめて、連想配列の呼び出し方を見てみよう。
1 2 3 4 5 6 7 8 9 10 11 |
$user = [ "name" => "もんた", "age" => 26, "from" => "日本" ]; echo "初めまして、{$user["name"]}です。"; echo "<br>"; //改行 echo "{$user["from"]}生まれ。"; echo "<br>"; //改行 echo "年齢は{$user["age"]}です。"; |
このように連想配列の指定後、任意のキーを記述すればそれぞれの値を呼び出すことができる。
この出力結果は以下のようになるはずだ。
1 2 3 |
初めまして、もんたです。 日本生まれ。 年齢は26です。 |
ちなみに上記の例では、それぞれキーに文字列が指定されているが、
このキーを数値で指定すると、以下のように紐付けることもできる。
1 2 3 4 5 6 7 8 9 10 11 |
$age = [ 26 => "もんた", 21 => "もん子", 26 + 21 => "もん三郎" ]; echo "{$age[26]}は長男"; echo "<br>"; echo "{$age[21]}は長女"; echo "<br>"; echo "2人の年齢を足すと{$age[47]}の年齢になる"; |
このように文字列とは少し違った紐付け方もできる。
以下のような出力結果になるはずだ。
1 2 3 |
もんたは長男 もん子は長女 2人の年齢を足すともん三郎の年齢になる |
上記はあくまで適当な例なので無理矢理感もあるかもしれないが、連想配列がこのような構造になっていることは覚えておきたいところ。
まとめ
連想配列もしっかり学ぶことができましたね。
配列とは少し違った記述方法や呼び出し方でしたが、割とシンプル。
プログラミングってやり方を知れば、その分だけ自由自在というのが楽しいですね。
今の僕では全然まだまだですが、より自由自在にコードが書けるように頑張りたいと思います。
最後までご覧頂きまして、ありがとうございました。