遍历锯齿状数组
Iterate through jagged array
我正在学习 Powershell 脚本,现在我正在尝试遍历一个由 2 个值数组组成的数组,同时只打印出第一个值。
例如,取下面的数组;
$array = (("fizz", "buzz"),
("foo", "bar"))
我希望能够打印出第一个值,所以 fizz
和 buzz
。
现在,我有以下代码;
Foreach ($a in $array)
{
Write-Host $a[0]
}
我应该得到的是 fizz
,但我得到的是 fizz buzz [0]
谢谢
您可以使用每个维度一个索引来寻址各个数组项。使用您的示例数组,以下将给出每个轴的第一项...
'{0}; {1}' -f $array[0][0], $array[1][0]
输出...
fizz; foo
您需要将多维数组视为具有行和列的 table,如下所示:
所以在您想要获得第一行的前两列的示例中,您想要的是
$array[0][0]
$array[0][1]
您可以通过运行查看:
Write-Host $array[0][0]
Write-Host $array[0][1]
您正在做的是遍历每一行并为每一行打印出第 0 列。
Foreach ($a in $array)
{
Write-Host $a[0]
}
这是说 foreach row in $array print out column 0. 为了让您的代码按预期工作,您需要将 $array
更改为 $array[0]
:
Foreach ($a in $array[0])
{
Write-Host $a
}
这将为您提供预期的结果并读取第 0 行打印列中的每一列。然而循环是不必要的,因为你可以通过简单地使用得到相同的结果:
Write-Host $array[0]
这只是打印出整行。
我正在学习 Powershell 脚本,现在我正在尝试遍历一个由 2 个值数组组成的数组,同时只打印出第一个值。
例如,取下面的数组;
$array = (("fizz", "buzz"),
("foo", "bar"))
我希望能够打印出第一个值,所以 fizz
和 buzz
。
现在,我有以下代码;
Foreach ($a in $array)
{
Write-Host $a[0]
}
我应该得到的是 fizz
,但我得到的是 fizz buzz [0]
谢谢
您可以使用每个维度一个索引来寻址各个数组项。使用您的示例数组,以下将给出每个轴的第一项...
'{0}; {1}' -f $array[0][0], $array[1][0]
输出...
fizz; foo
您需要将多维数组视为具有行和列的 table,如下所示:
所以在您想要获得第一行的前两列的示例中,您想要的是
$array[0][0]
$array[0][1]
您可以通过运行查看:
Write-Host $array[0][0]
Write-Host $array[0][1]
您正在做的是遍历每一行并为每一行打印出第 0 列。
Foreach ($a in $array)
{
Write-Host $a[0]
}
这是说 foreach row in $array print out column 0. 为了让您的代码按预期工作,您需要将 $array
更改为 $array[0]
:
Foreach ($a in $array[0])
{
Write-Host $a
}
这将为您提供预期的结果并读取第 0 行打印列中的每一列。然而循环是不必要的,因为你可以通过简单地使用得到相同的结果:
Write-Host $array[0]
这只是打印出整行。