添加大型数字键时PHP数组的内存使用情况

添加大型数字键时PHP数组的内存使用情况,php,arrays,memory-management,Php,Arrays,Memory Management,如果我想使用PHP非关联数组(如字典)并添加一个大键,PHP将分配多少内存 $myArray = Array(); $myArray[6000] = "string linked to ID 6000"; $myArray[7891] = "another key-value pair"; PHP还会为未使用的键0-5999和6001-7890分配内存吗?不,PHP不像C样式数组那样实现这一点。Php数组是关联容器,如状态所示 PHP中的数组实际上是有序数组 地图。映射是一种关联的类型 将值转

如果我想使用PHP非关联数组(如字典)并添加一个大键,PHP将分配多少内存

$myArray = Array();
$myArray[6000] = "string linked to ID 6000";
$myArray[7891] = "another key-value pair";

PHP还会为未使用的键0-5999和6001-7890分配内存吗?

不,PHP不像C样式数组那样实现这一点。Php数组是关联容器,如状态所示

PHP中的数组实际上是有序数组 地图。映射是一种关联的类型 将值转换为键


由于保留了顺序,数组很可能是某种二叉搜索树。如果您不熟悉二进制搜索树,我建议您选择一本好的数据结构书来了解更多信息,或者查看详细信息。上面的示例将生成一个具有两个节点的二元搜索树——一个用于键6000处的数据,另一个用于键7891。

它不会为索引0-5999分配内存。

请注意,如果通过json_encode(),这将创建0-5999键-json不喜欢PHP的稀疏数组=…这是内存的运行,这似乎表明情况并非如此。不,whupps。我试图用一个巨大的数字索引一个字符串。那会崩溃的。愚蠢的动态打字。