什么是使用指定键直接访问数组行的php的性能

时间:2011-04-12 08:05:36

标签: php arrays performance key

我对数组的性能有疑问...... php如何处理数组键?我的意思是,如果我执行类似$my_city = $cities[15];的操作.... php是否直接访问$cities数组中的确切行项,或者php迭代数组直到找到匹配的行?

如果它直接访问该行... 100行的数组和100,000行的数组之间的性能是否存在差异?

像这个例子中一样 $my_city = $cities[15];

4 个答案:

答案 0 :(得分:6)

PHP的数组实现为哈希表,因此可以直接访问元素,而无需迭代所有内容。在此处阅读有关算法的更多信息:http://en.wikipedia.org/wiki/Hash_table

答案 1 :(得分:0)

直接访问它。在幕后,一切都是内存指针算术。我几乎不相信PHP中的数组概念或实现与C,Java或C#等其他语言有所不同。

答案 2 :(得分:0)

这也取决于数组内部的内容。

// $my_city is a reference to the variable
$cities[15] = new stdobj();    
$my_city = $cities[15];

// $my_city is a copy of the array row
$cities[15] = 'foobar';    
$my_city = $cities[15];

可能不是您问题的直接答案,但对对象的引用通常使用的内存少于变量副本。

答案 3 :(得分:-2)

在具有100行的数组和具有100,000行的数组

之间总是存在明显的性能差异