2

我有一个只能在函数内部工作的多维整数数组,但当我尝试将它传递给另一个函数时会产生随机数。将多维数组传递给函数

PS> $array 
1 
2 
3 
4 
PS> $array[0] 
1 
2 
PS> $array[0][1] 
2 

阵列最初是用形成的:

$array = @(($data1),($data)) 

和所附上$数据之后的任何数组:($数据被清除每次迭代)

$array += ,($data) 

这似乎没问题,在我尝试创建一切正在工作的功能之前考虑。 然后我尝试了数组传递到另一个函数

theFunc ($array) 
    Function theFunc { 
    param ($theData) 
    #process data 
    } 

我得到阵列的正确ammount的,但在其内部的数字,我在一位通过多维数组不匹配。 任何帮助表示赞赏,谢谢。

+0

您能否提供更多信息。你会得到什么样的输出? – Klark 2012-07-16 21:04:30

+0

原来,问题出在我每次清除第二个数组的时候,考虑到我在一个点上工作,这并没有什么意义,但'$ data = $ data.Clear'似乎打破了数组,将其更改为单个变量,并且'$ data.clear'实际上并不清除数组 – Cole9350 2012-07-17 13:58:07

+0

问题解决:给您一点洞察,以引起您的兴趣。我有一个双循环,在内部循环中它会收集数据并将其放入第一个数组中。在外层循环中,它将采用该数组并将其推入多维数组中。阵列然后试图被清除,但不正确。我通过每次'$ data = @()'重新实例化数组来解决这个问题,并且比任何清除函数都更好。感谢您的帮助 – Cole9350 2012-07-17 14:08:41

回答

1

我尝试下面的例子中,一切似乎是罚款:

$data1 = @(1, 2, 3, 4) 
$data2 = @(5, 6, 7, 8) 
@($data1, $data2) 
$array[0] 
1 
2 
3 
4 
$array[1] 
5 
6 
7 
8 
function myFunc { param($arr) $arr; $arr[0]; $arr[1]; } 
myFunc($array) 
1 
2 
3 
4 
5 
6 
7 
8 
1 
2 
3 
4 
5 
6 
7 
8 

请提供你的输出。