Arrays 如何在powershell中创建哈希表数组?
我有一个如下结构的哈希表Arrays 如何在powershell中创建哈希表数组?,arrays,powershell,hashtable,Arrays,Powershell,Hashtable,我有一个如下结构的哈希表 $podhashtable = @{2 = '1','2' ; 3 = '3','4','5' ; 1 = '6'} 下面是我如何实现上述哈希表的代码 $podnumbers = @(2,3,1) $podInfo = @() $podhashtable = [ordered]@{} $buff = 0 foreach ($pd in $podnumbers) { #$podInfo = @() for($i=0;$i -lt $pd;$i = $i+
$podhashtable = @{2 = '1','2' ; 3 = '3','4','5' ; 1 = '6'}
下面是我如何实现上述哈希表的代码
$podnumbers = @(2,3,1)
$podInfo = @()
$podhashtable = [ordered]@{}
$buff = 0
foreach ($pd in $podnumbers) {
#$podInfo = @()
for($i=0;$i -lt $pd;$i = $i+1) {
$pod = Read-Host -Prompt "Assign the pod numbers for",$esxarray[$buff]
$podinfo += $pod
}
$podInfoOb = New-Object PSObject –Property $podsets
$podsets = @{$pd = $podInfo}
$podhashtable += $podsets
$buff = $buff + 1
}
Write-Output $podhashtable
我试图创建如下所示的哈希表数组
$podhashtable = @{2 = '1','2'}, @{3 = '3','4','5'}, @{1 = '6'}
获取上述哈希表数组的最佳方法是什么?这个问题显然是指: 我猜你想这样做:
$buff = 0
$podnumbers = @(2,3,1,2)
$podhashtable = foreach ($pd in $podnumbers) {
$podInfo = @{}
for($i=0; $i -lt $pd; $i = $i+1) {
$pod = Read-Host -Prompt "Assign the pod numbers for" # , $esxarray[$buff]
$podinfo[$i] = $pod
# $podInfoOb = New-Object PSObject –Property $podsets
$podInfo
$buff = $buff + 1
}
}
Write-Output $podhashtable
但我不能确定,因为您没有提供(请下次提供;例如:定义
$esxarray
或将其忽略)。实际上是的,但根据您引用的问题,没有满足我的目标,因为哈希表不允许重复键。虽然使用哈希表数组以便添加具有不同值的重复键,但我不确定是否理解问题仍然存在。我在(更新的)答案中添加了一个重复的键($podnumbers=@(2,3,1,2)
),这是基于我尝试了您的方法,该方法允许添加重复键,但它将重复键的值合并在一起,我希望添加具有不同值的重复键,并独立地表示这些键。您可以通过将$podInfo
(和$buff=$buff+1
)放置在for
循环中来实现这一点。(我已相应地更新了答案)。