PHP internally stores all arrays as associative arrays, so the only
difference between associative and indexed arrays is what the keys
happen to be. Some array features are provided mainly for use with
indexed arrays, because they assume that you have or want keys that
are consecutive integers beginning at 0. In both cases, the keys are
unique—that is, you can't have two elements
with the same key, regardless of whether the key is a string or an
integer.
PHP arrays have an internal order to their elements that is
independent of the keys and values, and there are functions that you
can use to traverse the arrays based on this internal order. The
order is normally that in which values were inserted into the array,
but the sorting functions described later let you change the order to
one based on keys, values, or anything else you choose.