如何为性能编写数组初始化代码?

时间:2011-08-16 14:56:03

标签: php arrays initialization

我的问题很简单

是......:

$arr = array(1, 2, 3, 4, 5, ..., x); //x is a huge number for the theory

...更快,更低或速度与以下相同:

$arr[] = 1;
$arr[] = 2;
$arr[] = 3;
$arr[] = 4;
$arr[] = 5;
...
$arr[] = x;

我认为第二种编码方式很容易改变,尤其是在存在多维数组的情况下。 但这会改变处理的速度吗?

2 个答案:

答案 0 :(得分:1)

在第一种形式中,数组具有恒定的大小。但是第二个初始化方法会在每个赋值时调整数组大小。

第二个会慢一些。

我建议像这样初始化:

$arr = array(1,
             2,
             3,
             4,
             ...
             x);

你可以从两者中获得优势。

答案 1 :(得分:0)

通过粗略测试,第二种方法的速度是第一种方法的两倍,但除非您使用非常大的阵列(100,000+元素)或多次初始化阵列(每秒1000次),否则差异很大可以忽略不计。

出于句法目的,请参阅Berk的答案。