【问题标题】:How does PHP handle integer indexed non-consecutive keyed arrays?PHP如何处理整数索引的非连续键控数组?
【发布时间】:2011-06-17 01:10:09
【问题描述】:

我很好奇在 PHP 中存储具有非连续整数索引的数组的效率如何。

如果我有一个数组

$b = array();
$b[1] = "Hello";
$b[18] = "World";
$b[999] = "Test";

这些键是否被存储,然后散列到一个新的数组中,PHP 是如何处理的?

【问题讨论】:

标签: php arrays indexing array-key


【解决方案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]
猜你喜欢
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
  • 2017-09-08
  • 2018-11-05
相关资源
最近更新 更多