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


how to code array initialisation for performance?

我的问题很简单

是……:

$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;

?

我认为第二种编码方式很容易改变,特别是如果有多个dim数组。但是这会改变处理速度吗?

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

第二个会比较慢。

我建议这样初始化:

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

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

语法参考Berk的回答