While I find most of PHP criticism pedantic at best, lack of a clear datatructures line up is becoming a practical limitation on my everyday job. The array() constructor creates data-structures that claim to do everything, but in reality I end up lacking relevant information that I would need in order to use it efficiently. Specifically, I have no idea of what data-structure it really is. Is it a list? What kind of list? An array of pointers? A btree? An hashmap?
How is lookup performed? Since the same datastructure has numerical and 'associative' lookup, I assume cannot perform lookups based on offset like one can do, say, in a C array.
For small amounts of data, I naturally do not care much about such performance optimizations. However, the software I work on it is started to be used in scenarios where moderately big data structures slow things down a bit.
Moreover, is it possible to explicitly create each mentioned datastructure? How?