1
我用下面的語句來填充數組:PowerShell的多維數組和foreach
for ([int]$i=1; $i -lt 4; $i++)
{
for ([int]$j=11; $j -lt 32; $j=$j+10)
{
$myRegularArray += ,($i, $j, [int](($i +1) * $j))
}
}
和輸出是相當多的,你所期望的:
foreach ($row in $myRegularArray)
{
write-host "$($row[0]) rampant frogs, $($row[1]) horny toads & $($row[2]) bottles of beer"
}
1 green frogs, 11 horny toads & 22 bottles of beer
1 green frogs, 21 horny toads & 42 bottles of beer
1 green frogs, 31 horny toads & 62 bottles of beer
2 green frogs, 11 horny toads & 33 bottles of beer
2 green frogs, 21 horny toads & 63 bottles of beer
2 green frogs, 31 horny toads & 93 bottles of beer
3 green frogs, 11 horny toads & 44 bottles of beer
3 green frogs, 21 horny toads & 84 bottles of beer
3 green frogs, 31 horny toads & 124 bottles of beer
但是,我用選擇對象,並且在某些情況下,從多維數組中只選擇一行。例如
foreach ($row in ($myRegularArray | where-object { $_[2] -eq 124 }))
{
write-host "$($row[0]) rampant frogs, $($row[1]) horny toads & $($row[2]) bottles of beer"
}
現在,而不是通過在陣列中的單一維度每個對象的foreach迭代:
3 rampant frogs, horny toads & bottles of beer
31 rampant frogs, horny toads & bottles of beer
124 rampant frogs, horny toads & bottles of beer
我有點明白爲什麼出現這種情況,我的身影,答案是不使用的foreach。我有任何改變這種行爲的方法,以便我仍然可以使用foreach嗎?