遍历锯齿状数组

Iterate through jagged array

我正在学习 Powershell 脚本,现在我正在尝试遍历一个由 2 个值数组组成的数组,同时只打印出第一个值。

例如,取下面的数组;

$array = (("fizz", "buzz"),
          ("foo", "bar"))

我希望能够打印出第一个值,所以 fizzbuzz

现在,我有以下代码;

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]

这只是打印出整行。