At first I thought I was trying to store the value into the variable incorrectly.
However, when I use for(value in array) loops, I get the associative name half the time, but the other half the time I can actually get the value. This means that the value is in the variable, but I don't know how to properly retrieve it.

When I try to access the array directly, I get the associative name ('a1', 'a2', 'b1', or 'b2') not the value ('a1value', 'a2value', 'b1value', 'b2value').
Elements created using associative syntax are stored entirely separately, they cannot be indexed numerically and their existence is not reflected in the length property.