phpassociative-array

How does PHP keep track of order in an associative array?


When pushing a new value onto an indexed array

$array[] = 'new value';

the PHP documentation explains how it gets added in the [MAX_INDEX+1] position.

When pushing a new value onto an associative array

$array['key'] = 'new value';

it works the same, but I don't see any explanation in the documentation to confirm how or why it does so. The order seems to be consistent in my implementation, but how do I know for sure that the order will remain the same? Does anyone know how PHP implements this on the back-end?


Solution

  • How are associative arrays implemented in PHP? might give you some insight.

    It seems that PHP arrays are essentially hash tables, so the order of the array will stay the same until you reorder it (e.g. by sorting the array).

    EDIT: It appears this is getting downvoted, allow me to explicitly include the sources I linked to in the comment below here...