PHP如何处理整数索引的非连续键控数组?
Posted
技术标签:
【中文标题】PHP如何处理整数索引的非连续键控数组?【英文标题】:How does PHP handle integer indexed non-consecutive keyed arrays? 【发布时间】:2011-06-17 01:10:09 【问题描述】:我很好奇在 php 中存储具有非连续整数索引的数组的效率如何。
如果我有一个数组
$b = array();
$b[1] = "Hello";
$b[18] = "World";
$b[999] = "Test";
这些键是否被存储,然后散列到一个新的数组中,PHP 是如何处理的?
【问题讨论】:
重复,见this question 【参考方案1】:来自数组上的php wep site:
PHP 中的数组实际上是一个有序映射。映射是将值与键相关联的类型。这种类型针对几种不同的用途进行了优化;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。由于数组值可以是其他数组,所以树和多维数组也是可以的。
执行 print_r($b);在您的代码上给出以下输出:
Array
(
[1] => Hello
[18] => World
[999] => Test
)
【讨论】:
我需要创建一个这样的数组。我将值存储到 mysql 记录 ID 以供以后处理。但是在我的情况下,mysql 记录 ID 从 100,000 开始并上升 - 所以数组将是$ar = array([100001] => "Blah", [305278] = "Foo", [412731] = "FooBar")
所以稍后我可以将数组引用为 $ar[$recordID]
以上是关于PHP如何处理整数索引的非连续键控数组?的主要内容,如果未能解决你的问题,请参考以下文章
从PHP版本7.2.0开始,“数组解除引用”如何处理类型为boolean / integer / float / string的标量值?