連想配列(ハッシュ)とは?使い方をわかりやすく説明
- 作成日:2018/06/03
- 更新日:2018/06/07
様々な言語で登場する連想配列についてわかりやすくご説明します。
連想配列とは
連想配列とは添字を自分の好きな文字に置き換えることができる配列です。 ハッシュと呼ばれることもあります。
では、具体的に見ていきましょう。 例えば、以下のように配列があるとします。
arr[0]=10;
arr[1]=20;
arr[2]=30;
なんてことはない、どこにでも見る普通の配列ですよね。 そして普通の配列では添字は0から始まり、1・2・3・・・と 1つずつ値が増えていくのが基本です。
一方で、連想配列は以下のようなことができます。
arr["犬"]=10;
arr["猫"]=20;
arr["魚"]=30;
添字が文字列になっているのがわかりますね。 連想配列では添字は0・1・2・・・・とせずに 自分の好きな文字を使って良いのです。 連想配列では添字のことをキー値と呼びます。
arr[0]ではなんの値かわかりませんが、 arr["犬"]と書かれていると犬に関することだなと連想できますよね。 中身を連想できる配列=連想配列と覚えると良いでしょう。
使い方
各言語の連想配列についてご紹介します。 このページでは連想配列の基本を理解することが目的なので、 簡単な使い方についてです。 状況により追記していきます。
PHP
PHPで連想配列を使うには以下のようにします。
//配列に値を設定
$arr = array('dog'=>'犬', 'cat'=>'猫', 'fish'=>'魚');
そして、値を使うときは以下のようにします。
//配列の値を使う
echo $arr["dog"];//犬と出力
echo $arr["cat"];//猫と出力
echo $arr["fish"];//魚と出力
このように、変数名["キー値"]とすることで連想配列の値を使うことができます。
スーパーグローバル変数も連想配列
PHPではスーパーグローバル変数が連想配列なので、これについても触れておきます。 スーパーグローバル変数はいくつか種類がありますが、 今回は$_SERVERというサーバー情報を取得できる変数を例にします。
$_SERVERを使いサーバー情報を取得するには以下のようにします。
//IPアドレス取得
var ip= $_SERVER['SERVER_ADDR'];
$_SERVERという配列の添のえ字にはSERVER_ADDRが使われています。 連想配列なので添字には文字の使用が許されているのです。
別の言い方をすると、変数$_SERVERの中でキー値がSERVER_ADDRの情報を取得しています。 連想「配列」なので、キー値はSERVER_ADDR以外にもたくさんあります。
これがもし以下のような書き方だとどでしょう。
//IPアドレス取得
var ip= $_SERVER[0];
何の情報の配列かわかりにくいですよね。 このように、連想配列では中身がわかりやすくなっています。
JavaScript
JavaScriptで連想配列を使うには以下のようにします。
//配列に値を設定
var arr ={ 名前: "田中太郎", 性別: "男", 年齢: 30};
arrという変数を宣言すると同時に、「名前・性別・年齢」の3つのキーに値を設定しています。 キーが文字列の場合は値をダブルコーテーションで囲みます。
値を使うときは以下のようにします。
//配列の値を使う
alert("名前は" + arr.名前);//名前は田中太郎
alert("性別は" + arr.性別);//性別は男
alert("年齢は" + arr.年齢);//年齢は30
このように、変数名.キー名とすることで、連想配列の中身を取り出すことができます。