• 技术文章 >PHP >PHP数组

    php数组实现原理

    小妮浅浅小妮浅浅2021-04-07 14:29:10原创6251

    1、实现原理分析

    PHP数组的底层实现是分散列表,也称为hashTable,分散列表是基于键(Key)直接访问存储位置的数据结构,其key-value之间存在映射功能,key可以根据映射功能直接索引对应的value值,不需要通过关键词进行比较,理想的情况下,分散列表的检索效率非常高,时间复杂性为O(1)。

    从源代码可以看到zend_array的构造。

    typedef struct _zend_array zend_array;
    typedef struct _zend_array hashTable;

    2、说明

    key:按键可以快速搜索对应的value。一般为数字或字符串。

    value:值,目标数据。可以是复杂的数据结构。

    bucket:桶,HashTable中存储数据的单元。用于存储key、value和辅助信息的容器。

    slot:槽、hashTable有多个槽,一个bucket必须从具体的slot开始,一个slot下可以有多个bucket。

    哈希函数:需要自己实现,存储时,key应用哈希函数确定slot。

    哈希冲突:多个key经过哈希计算,得到的slot位置相同,被称为哈希冲突。一般解决冲突的方法是链接地址法和开放地址法。PHP采用链接地址法,将同一个slot中的bucket通过链接表接。

    以上就是php数组实现原理分析,首先需要我们对数组中的一些基本概念有所掌握,然后再结合有关原理部分进行理解。

    更多php学习指路:php数组

    推荐操作系统:windows7系统、PHP5.6、DELL G3电脑

    专题推荐:php数组
    品易云
    上一篇:php数组合并的方法 下一篇:php数组排序算法

    相关文章推荐

    • php数组的分类有哪几个• php数组排序的函数有几个• php数组中的二分查找是什么• php数组排序函数• php数组中二分查找是什么• php数组如何进行堆栈的模拟• php数组如何转换为xml的形式?• php数组交集函数• php数组赋值方式• php数组添加元素• php数组转json字符串• php数组合并的方法

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网