【PHP】連想配列?って何?
今回のテーマ
今回は連想配列の書き方について記載します。
記事対象者
・PHP初学者
連想配列とは
連想配列とは配列でもより使いやすくした配列のことです。
配列では要素番号01,2~にそれぞれ値を格納していきましたが
連想配列はこの0,1,2の要素番号を名前で登録することができます。
例 $team =array{"大型犬"=>"ゴールデンレトリバー","小型犬"=>"チワワ"}; echo $team["大型犬"]; // 出力 ゴールデンレトリバー
JavaでHashMapクラスというのがあるのですが
仕組みはそれと同じですね。
サンプルコード
サンプルコードをみていきます。
今回のサンプルコードは少し複雑ですが、見ていきます。
このサンプルで入力されるのは
「大型犬,ゴールデンレトリバー,小型犬,チワワ」とします。
<?php for($i=0 ; $i<2 ; $i++){ $input = trim(fgets(STDIN)); $input_value =explode(",", $input); // 手前の要素をkeyとして、後の要素をvalueとして連想配列に代入 $key = $input_value[0]; $value = $input_value[1]; $team[$key] = $value; } print_r($team); ?> Array ( )
解説メモ
一つ一つの構文を丁寧に見てみます。
①まずは標準入力を複数回取得するためfor文で繰り返す
例では2回繰り返すので$i<2までにしています。
for($i=0 ; $i<2 ; $i++){}
②標準入力を取得する
入力された文字列を$inputに代入する。
ここではexplodeメソッドで「,」区切りで分けられた文字列を
それぞれ$valueに代入する。
$input = trim(fgets(STDIN)); $value =explode(",", $input);
そのため$valueには{"大型犬","ゴールデンレトリバー","小型犬","チワワ"}として 配列として代入されています。
③②で代入された配列の要素をキーと値に代入する。
$key = $input_value[0]; $value = $input_value[1]; $team[$key] = $value;
このサンプルコードの例にすると以下のように代入を行っている。
[0]番目の"大型犬"を$key
[1]番目の"ゴールデンレトリバー"を$value
[2]番目の"小型犬"を$key
[3]番目の"チワワ"を$value
最後に$team[$key] = $value;のコードで$teamという連想配列化しているというのが今回のサンプルコードの流れです。
④出力する
print_r($team); // 出力結果 [大型犬] => ゴールデンレトリバー [小型犬] => チワワ
まとめ
今回連想配列の説明をしました。よく使うので
しっかり覚えておきたい。
また今回のサンプルコードでは標準入力されたものを
連想配列として扱うコードの流れもしっかりマスターしておきたいです。