首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数值索引的PHP数组是连续初始化还是映射?

问数值索引的PHP数组是连续初始化还是映射?
EN

Stack Overflow用户
提问于 2009-12-28 03:27:54
回答 2查看 170关注 0票数 0

我有一个关于PHP数组的问题。

如果我创建一个数组

代码语言:javascript
复制
$ids = array();

然后把某样东西放在它的1000个位置:

代码语言:javascript
复制
$ids[1000] = 5;

解释器如何在内部做到这一点?数组像Java一样是连续的内存块吗?它会像int1000一样初始化1000个int吗?

或者它更像是一个地图,其中1000是键,它链接到5的数据?我说的是PHP的内部结构。

如果我有一个很大的索引,效率会不会降低,因为它必须初始化所有的索引?或者它是以数字为关键字的地图?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-28 03:33:49

数组是PHP中的散列。因此,在您的术语中,它们是映射的。您可以在示例中检查这一点,方法是在初始化后查看$ids[0...999],查看它们是否不存在,并在初始化前后比较memory_get_usage()。

票数 1
EN

Stack Overflow用户

发布于 2009-12-28 03:29:53

PHP中的所有数组都是保持插入顺序的有效关联数组。所以:

代码语言:javascript
复制
$array[1000] = 5;

从根本上说与:

代码语言:javascript
复制
$array['hello'] = 'world';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1966774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档