A jagged array is an array of arrays! Eh? Come again?
Well, in a jagged array, at least one 'compartment' or element contains a child array. Here’s what a simple jagged array (called $Array) might look like when sketched out:
1
2, 3
3
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
4
5, 5, 5
6
“Hello”, “World”
7
8
9
10
As you can see - it's rather spiky or jagged.
So... $Array[0] returns:
1
$Array[-1] returns:
10
$Array[7] returns:
Hello
World
$Array[7][-1] returns:
World
(...as ‘World’ is an element from a child array).
Here’s an example that creates a jagged array:
$ChildArrayElemenet1="Hello","World", @{test="la"; brains ="blah"; cheese ="1,23,4,5,6,7"}
$ChildArrayElemenet2=1
$ChildArrayElemenet3=1,2,3
$ChildArrayElemenet4=“Single”
$Array=$ChildArrayElemenet1,$ChildArrayElemenet2,$ChildArrayElemenet3,$ChildArrayElemenet4
Access the first element:
Access the hash table that’s the last element of the first child array:
Access the ‘test’ label in the hash table:
Let’s create a jagged PS Custom Object…
$Nic=gwmi-ClassWin32_NetworkAdapter–property*
$Name="Ian's Stuff"
$Stuff=[PSCustomObject]@{
Win32Nic =$Nic
Name =$Name
} #End of $Stuff
The Name property is a single string. The Win32Nic property is a child array.
Now, access an element in the child array from the PS Custom Object…
Or…
Now, access some properties from an element in the child array…
HTH!