如果我在PHP中使用第n个索引启动数组,它将占用多少内存?

Rah*_*eed 3 php arrays

我需要通过使用index作为第n个数字在Php中创建一个数组。例如:

<?php
    $A = array();
    $A['1000']='Some value';
Run Code Online (Sandbox Code Playgroud)

该数组是否会为剩余的999个索引占用内存?

Hic*_*TTA 5

PHP中的数组将值与键相关联。就像在官方文档中可以找到的有序地图一样。

PHP中的数组实际上是有序映射。映射是一种将值与键相关联的类型。该类型已针对多种不同用途进行了优化。可以将其视为数组,列表(向量),哈希表(地图的实现),字典,集合,堆栈,队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。

这意味着php将不会为剩余的999个索引分配内存。另外,您可以通过将数组转换为json进行测试:

echo json_encode($A);
Run Code Online (Sandbox Code Playgroud)

这将返回

{"1000":"Some value"}
Run Code Online (Sandbox Code Playgroud)