php的array变量在源码实现中使用的是其实像的HashTable数据结构。
具体步骤大致如下:
对key做hash,得到hash code之后与HashTable的nTableMask字段做&操作,得到bucket的index,
通过index可以定位到bucket,而bucket是一个链表,由于存储key相同的字段。
对于key是int的情况,可以省略对key做hash得到hash code的步骤,直接将int的key与nTableMask做&操作,得到bucket的index。