An array in PHP is actually an ordered map. A map is a type that associates values to keys. This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of a map), dictionary, collection, stack, queue, and probably more. As array values can be other arrays, trees and multidimensional arrays are also possible.
В этом и прикол :) В принципе, можно проверить, что все ключи в массиве образуют диапазон [0, N] - тогда можно сказать, что он "обычный", а не ассоциативный.
>как проверить, является ли массив ассоциативным?
А зачем?
...
Тем более, что смешение ацциоциативных и ииндексных массивов
позволяет здорово облегчать жизнь.
Например:
$fields = array(
'title',
'create_time' => 'posted',
'owner_id' => 'poster',
'answers'
);
Описание полей объектов в ORM. Если имя свойства объекта и столбца в БД совпадает,
то пишем просто его, если нет - то 'имя свойства' => 'имя столбца'.
Коротко и наглядно :)