2016-11-04 20 views
1

を追加します。PowerShellは私はこのようなPowerShellで多次元配列を作成したい多次元配列に

$array[0] = "colours" 
$array[0][0] = "red" 
$array[0][1] = "blue" 
$array[1] = "animals" 
$array[1][0] = "cat" 
$array[1][0] = "dog" 

ここに私が試したものです:

$array = @() 
$array += "colours" 
$array += "animals" 

$array[0] # outputs "colours" 
$array[1] # outputs "animals" 

$array[0] = @() 
$array[1] = @() 

$array[0] += "red" 
$array[0] += "blue" 
$array[1] += "cat" 
$array[1] += "dog" 

$array[0] # outputs "red", "blue" - i expected "colours" here 
$array[0][0] # outputs "red" 

私は任意のヒントを感謝しています。事前

答えて

3

ありがとうございますは、ネストされた配列で何をしようとして行うことはできません。

$array = @() 
$array += "colours" 

$array[0]は、その文字列colours、 が含まれていますが、あなたになり空白の配列を$array[0]$array[0] = @()に割り当てて、その値にを置き換えます。それで、colours値はとなり、となります。

この配列に文字列redblueを入力すると、$array[0]は2要素文字列配列@('red', 'blue')を含むようになります。


一つの選択肢トップレベルの配列の要素の型としてハッシュテーブルを使用にある:あなたが[hashtable]としたほうが良いだろうように見えます

$array = @() 
$array += @{ name = 'colours'; values = @() } 

$array[0].values += 'red' 
$array[0].values += 'blue' 

$array[0].name # -> 'colours' 
$array[0].values # -> @('red', 'blue') 
2

(連想配列とも呼ばれる):

$hash = @{ 
    colours = @('red','blue') 
    animals = @('cat','dog') 
} 

$hash.Keys # show all the keys 

$hash['colours'] # show all the colours 
$hash.colours # same thing 

$hash['colours'][0] # red 

$hash['foods'] = @('cheese','biscuits') # new one 
$hash.clothes = @('pants','shirts') #another way 

$hash.clothes += 'socks'