I have an example of a program that creates an array, and then attempts to assign the value of that array multiple times into another array as a multidimensional array.
To assign the values of $a
to $b
instead of the reference to $a
, you can wrap the variable in $()
. Anything in $()
gets evaluated before using it in the command, so $($a)
is equivalent to 0, 0, 0
.
$a =@(0,0,0)
$b = @($($a),$($a),$($a))
$b[1][2]=2
$b
'$a is not changed.'
$a
Be careful in PowerShell ',' is not the enumerator operator, but an array aoperator. The thing you present as multidimensional array is in fact an array of array, you'll find here under the definition of a multidimensional array :
$a= new-object ‘object[,]’ 3,3
$a[0,2]=3
PS > for ($i=0;$i -lt 3;$i++)
>> {
>> for($j=0;$j -lt 3;$j++)
>> {
>> $a[$i,$j]=$i+$j
>> }
>> }
Everything work here as $b
is an array of reference.