> tl;dr: PHP arrays are basically hash tables.
Weirder than that. They're ordered hash tables. The order of keys in a PHP array isn't arbitrary, like dictionaries/hashes/maps in various other languages; it's based on the order that keys are added, and can be explicitly manipulated with functions like ksort().