PowerShell: 多次元連想配列(ハッシュテーブル)を作成してみる
PowerShellでは多次元の連想配列 (ハッシュテーブル)を作成することも可能です。 配列で多次元配列(ジャグ配列)を使うのと同じような要領でできます。
ここでは2次元の連想配列を例に、 多次元連想配列の作成、データの追加、データの削除の方法を解説します
多次元連想配列の作成
下表のようなキーと値を持つ「2次元連想配列 $h」を作ってみます。
「2次元連想配列 $h」は2つのキー"a"と"b"があり、それぞれ値として連想配列を持ちます。
キー | 値(連想配列) |
---|---|
a | a1 = 100 a2 = 200 |
b | b1 = 300 b2 = 400 |
次のコードのように記述します。
$h = @{ a = @{ a1 = 100 a2 = 200 } b = @{ b1 = 300 b2 = 400 } } $h.GetType().Name # Hashtable $h.a.Gettype().Name # Hashtable $h.b.Gettype().Name # Hashtable $h # 実行結果 Name Value ---- ----- b {b1, b2} a {a2, a1}
GetType().Nameで $h、$h.a、$h.b がハッシュテーブルであることも確認できます。
値の参照
上で作成した多次元連想配列のキー"a1"の値を参照したい場合、 次のようにキーを. ドットでつないで参照します。
Write-Host $h.a.a1 # 100
他にも[キー]をつなげたり、Item(キー)を.ドットでつなく書き方も可能です。
Write-Host $h["a"]["a1"] # 100 Write-Host $h.Item("a").Item("a1") # 100
自分がわかりやすい方法を使ってください。
値の変更
値を変更する時は代入演算子の左辺に変更したい要素、 右辺に値を記述します。
$h.a.a1 = 500
要素(キー・値)の追加
要素を追加する場合はAddメソッドを使います。
「a1 = 100」「a2 = 200」と同じ次元に「a3 = 500」を追加する場合は 次のように記述します。
$h.a.Add("a3", 500) $h.a # 実行結果 Name Value ---- ----- a3 500 a2 200 a1 100
キー"a"、"b"と同じ次元にキー"c"を追加してみます。 キー"c"の値は連想配列とします。
$h.Add("c", @{c1 = 500; c2 = 600}) $h # 実行結果 Name Value ---- ----- b {b1, b2} a {a2, a1} c {c2, c1}
要素(キー・値)の削除
要素を削除する場合はRemoveメソッドを使います。
「b1 = 300」を削除する場合、 次のように記述します。
$h.b.Remove("b1") $h.b # 実行結果 Name Value ---- ----- b2 400