未使用偏移量的PHP数组内存消耗


PHP array memory consumption for unused offsets

如果这个问题已经在其他地方得到了回答,我很抱歉,但我找不到它(可能是因为我很难正确地表达我的问题)。

我使用的是一个双维数组,它是数据库查询的结果集。我已经设置了数组,所以数组的第一个索引是行数组的pk,所以数组看起来像。。。

$array[345] = {'id' => 345,
               'info1' => 'lorem',
               'infor2' => 'ipsum'} 
$array[448] = {'id' => 448,
               'info1' => 'lorem',
               'infor2' => 'ipsum'}

我的问题。。。我知道索引是作为整数传递的。因此,我认为(也许是错误的)它们被数组视为数字偏移(而不是关联的)。那么,如果第一个索引是345,系统会自动在内存中为索引的0到344保留空间吗?代码都运行得很好,但我想知道这个方法是否会占用大量内存。特别是如果我到了只有两个数组存储在322343和554324的地步。如果这是一个愚蠢的问题,很抱歉,谢谢你的回答。

否,数组是哈希映射,键不等于偏移量,例如

$foo = array(0 => 'x', 1000 => 'y')

仅为两个元素。两者之间没有任何保留。