在PHP,大型switch语句或每次都要进行数组初始化的数组键查找中,什么更快?

问题描述 投票:25回答:2

PHP中更快的速度,执行大型switch语句或设置数组并查找键的速度更快?

现在,在您回答之前,我很清楚,对于纯查询而言,数组会更快。但是,这是假设只创建一次数组,然后重复查找它。

但是那不是我在做什么-每次运行代码都是新的,并且每次将使用数组[[[仅一次。因此,每次都需要重新计算所有数组散列,并且我想知道这样做是否比仅具有switch语句慢。

在PHP中,执行大型switch语句或设置数组并查找键的速度更快?现在,在您回答之前,我很清楚,对于纯查找来说,数组要快一些。但是,这是...
php arrays parsing hash switch-statement
2个回答
13
投票
我做了一些测试:

6
投票
这取决于数组的大小,但是出于大多数实际目的,您可以考虑使数组更快。原因很简单。 switch语句必须与switch语句中的每个条目进行顺序比较,但是数组方法只是获取哈希并找到该条目。当开关中的条目太少而顺序比较比哈希运算要快时,使用开关的速度会更快,但是数组方法会变得更加高效。用计算机科学的术语来说,这是O(n)与O(1)的问题。
© www.soinside.com 2019 - 2024. All rights reserved.