4 ms·
tl;dr: PHP arrays are basically hash tables. There's an odd departure towards the end where the author talks about JSON-to-array conversions and vice versa. Un
by Minor49er 5y ago
tl;dr: PHP arrays are basically hash tables.
There's an odd departure towards the end where the author talks about JSON-to-array conversions and vice versa. Unsurprisingly, this can't always work, not only because of the keying issue that the author mentions, but also because PHP supports objects, references, anonymous functions, and other things that JSON simply can't support.
- duskwuff 5y ago> 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().
- Minor49er 5y agoRegarding the ordering, you can navigate hash tables in other languages similarly though, can't you?
- theonething 5y agoYes, e.g. in Ruby since 1.9, hash order is guaranteed.
- JodieBenitez 5y agoSame in Python since 3.6 (2016)
- vegai_ 5y agoAlthough the changes doc[1] states that dicts being ordered is an implementation detail that shouldn't be relied on. Nobody does of course ;) [1] https://docs.python.org/3.6/whatsnew/3.6.html#new-dict-implementation https://docs.python.org/3.6/whatsnew/3.6.html#new-dict-imple...
- warvariuc 5y agoAs of Python 3.7, this is no longer an implementation detail and instead becomes a language feature.
- ilyash 5y agoYep. In Next Generation Shell for example. At the time that the language was created, around 2013, it was clear to me (author of the language) that ordered traversal is beneficial and outweighs the downsides (memory usage).