How are associative arrays implemented in PHP?
The highest voted answer link is broken and doesn't give that much explanation.
PHP is written in C and the underlying structure is just a C array. C arrays are just chunks of memory. The indexes in C arrays must be continuous, you can't have an index 0 and an index 1000 that comes after it. To make associative array keys work, before they are added to the C array, they are converted to proper C indices via a hash function.
For a full explanation, I found this link to be much more informative.
http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html
It's a hash table. The type declaration and hashing function are here:
http://svn.php.net/viewvc/php/php-src/trunk/Zend/zend_hash.h?view=markup
There is a light weight array and a linked list within the spl (standard php lib)