平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【PHP】連想配列?って何?

今回のテーマ

今回は連想配列の書き方について記載します。

記事対象者

PHP初学者

連想配列とは

連想配列とは配列でもより使いやすくした配列のことです。
配列では要素番号01,2~にそれぞれ値を格納していきましたが
連想配列はこの0,1,2の要素番号を名前で登録することができます。

例
$team =array{"大型犬"=>"ゴールデンレトリバー","小型犬"=>"チワワ"};
echo $team["大型犬"];
// 出力
ゴールデンレトリバー

JavaでHashMapクラスというのがあるのですが
仕組みはそれと同じですね。

HashMap | Javaコード入門

サンプルコード

サンプルコードをみていきます。
今回のサンプルコードは少し複雑ですが、見ていきます。
このサンプルで入力されるのは
「大型犬,ゴールデンレトリバー,小型犬,チワワ」とします。

<?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);
// 出力結果
 [大型犬] => ゴールデンレトリバー
 [小型犬] => チワワ

まとめ

今回連想配列の説明をしました。よく使うので
しっかり覚えておきたい。

また今回のサンプルコードでは標準入力されたものを
連想配列として扱うコードの流れもしっかりマスターしておきたいです。

参考サイト

techacademy.jp