首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PHP中没有随机访问数组?

问为什么PHP中没有随机访问数组?
EN

Stack Overflow用户
提问于 2011-10-06 14:55:45
回答 5查看 552关注 0票数 1

PHP数组实际上是一个有序的映射,它将值与键关联起来。访问随机数值索引的速度比Java等语言慢得多。甚至Javascript数组访问也比PHP快得多。当我在服务器上编写Sudoku解决方案并最终切换到Python时,我体验了PHP的缓慢,这也比PHP更快。

PHP没有提供适当的随机访问数组(用于数字索引)的原因是什么?

我要澄清的是:我说的不是随机的条目。我指的是通过计算索引直接访问,例如有一个81值的数组a (Sudoku板)和直接访问任何值a[i]而不搜索地图。

EN

回答 5

Stack Overflow用户

发布于 2011-10-06 15:00:50

这只是语言设计上的不同。要比较“X语言”比“Y语言”更快是很难的,就像数独的解算器一样。性能的提高实际上取决于实现。

但是,PHP数组在内部存储为有序散列。

如果您正在寻找数组和集合的性能增益,请尝试查看一些这些。它们可能更适合您的数据集。这是关于选择正确的工具-- PHP数组似乎是人们喜欢将所有数据都塞进的“所有”结构,这是一个我不同意的模式。

票数 3
EN

Stack Overflow用户

发布于 2011-10-06 15:02:10

也许其中一种SPL数组类型更适合您?

PHP SPL手册

编辑:更仔细地观察它,SplFixedArray将是一个很好的选择,在sudoku实现中,您将知道数组的大小。它自己说它会更快。然而,正如其他人所说--如果不看算法,我们怎么能确定数组是问题所在呢?

数组的性能比较与SplFixedArray

SPL -代表标准PHP库,它不太可怕

票数 3
EN

Stack Overflow用户

发布于 2011-10-06 15:01:45

我想,php是作为html页面的模板引擎而设计的。它必须非常简单,非常容易使用,所有必要的构造/功能需要一个典型的web应用程序,迭代数据库字段,等等。

对于php应用程序来说,速度从来不是问题,因为文件系统、数据库访问和web服务通常比php cpu处理慢得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7676218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档