我正在学习Powershell脚本,现在我试图遍历由2个值数组组成的数组,同时仅打印出第一个值。
例如,采用以下数组;
$array = (("fizz", "buzz"),
("foo", "bar"))
我希望能够打印出第一个值,所以fizz
和buzz
。
现在,我有以下代码;
Foreach ($a in $array)
{
Write-Host $a[0]
}
我应该得到的是fizz
,但是我得到的是fizz buzz [0]
谢谢
答案 0 :(得分:1)
您需要将多维数组视为具有行和列的表,如下所示:
因此在您要获取第一行的前两列的示例中,您想要的是
$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]
}
这就是说$ array中的foreach行打印出第0列。要使您的代码按预期工作,您需要将$array
更改为$array[0]
:
Foreach ($a in $array[0])
{
Write-Host $a
}
这将为您提供预期的结果,并读为第0行打印列中的foreach列。但是,循环是不必要的,因为您只需使用以下命令即可获得相同的结果
Write-Host $array[0]
这只是打印出整行。
答案 1 :(得分:0)
您可以使用每个维度一个索引来处理单个数组项。与您的示例数组,以下将给出每个轴的第一项...
'{0}; {1}' -f $array[0][0], $array[1][0]
输出...
fizz; foo