Well even though I can't see it your making it a bit complex when it could be simpler using just x and y you can hold you items like
X0. X1. X2.
Item name. Min_Damage. Max_Damage
So Y0 which is technically row 0 will hold each piece of one item information across the x which is columns.
Next if you are expanding and popping items as they come and go there is already a function that gives you the array size. Without having to do the first function. Then there is an event that will loop through each array for you already. So for what your trying to do it would loop through the y to compare. But that is all I can tell you with out having anything to see. You honestly don't need to use z index IMHO. Just note where everything is when you call them so if you just need to know min damage you know it would be in the x1 position. Basically every single thing about that item should be held in one row.