Php 数组:读取比创建更快?

Php 数组:读取比创建更快?,php,arrays,Php,Arrays,我需要一个多维预填充一个数值,如此 for($m = 0; $m <= 149; $m++){ for($n = 0; $n <= 99; $n++){ $pitchDef[$m][$n] = 999; } } 用于($m=0;$m) 我很确定这是你能得到的最快的速度。它比两个for循环快得多,但单独运行时,两个for循环的速度都很小。这可能会对你有所帮助 每次给内存分配一个新变量都需要先找出内存是如何需要的,然后从系统中分配内存,然后再进

我需要一个多维预填充一个数值,如此

for($m = 0; $m <= 149; $m++){
    for($n = 0; $n <= 99; $n++){
            $pitchDef[$m][$n] = 999;
    }
 }
用于($m=0;$m)
我很确定这是你能得到的最快的速度。它比两个for循环快得多,但单独运行时,两个for循环的速度都很小。

这可能会对你有所帮助

每次给内存分配一个新变量都需要先找出内存是如何需要的,然后从系统中分配内存,然后再进行写入。在这三个步骤中,写入本身(我认为最后一个操作)的时间与读取相同,但整个赋值要长一些,因为它还有两个步骤

如果您有数组,在本例中,您甚至不知道数组有多大,因此每次编写PHP都需要更改整个数组的结构,然后为元素分配内存,然后再编写它

至少您可以在一开始为数组分配内存,如ExpressionPills编写的,然后访问数组


最好的办法是通过多次运行来比较(“基准”)两种方法(“许多”例如为100万)查看执行时间。

为什么不对其进行基准测试?通过
create
您的意思是为数组分配空间并填充数组的所有维度?还是仅填充实际分配?显然,如果您需要在数组中创建和设置大范围的值,它将比简单的读取操作慢。您希望获得什么样的性能?用整数填充的149*99数组可能不会产生明显的性能影响。做任何看起来更清晰、更容易理解的事情。@deceze这是一个足够公平的评论,但SE也是关于创建信息存储库的,如果我对此进行基准测试,然后需要更大的数据,我可以继续基准测试吗?我也可以尝试了解原因,否?@jasonlarke,如果阵列已经分配了,那么性能上的理论差异是什么?+1用于提示-但是我没有“了解”答案,谢谢,使用阵列填充节省了大量时间!!!+1用于提示-但是我没有“了解”答案,谢谢,使用阵列填充节省了大量时间!!!谢谢,+1用于提示ct注意事项(基准测试、内存分配)但仍然不确定读和写是否有时间差异,因为每一篇文章都有比读更多的步骤。如果你确定,那么在答案中陈述,我会接受。我不会,这已经足够清楚了。我不在乎你是否接受,我只是试着解释和帮助你。如果写在这里或不写在这里,我的观点都不那么真实这里,“写作本身的时间(我想)与阅读相同。”!=“它有(时差),因为每一篇写作都有比阅读更多的步骤。”哈哈-你的回答有一个观点,但你的评论断言了一个事实,如果你的答案是这样的,我无论如何也不能接受一个观点。我感谢你的帮助!再次感谢你。
array_fill(0, 150, array_fill(0, 100, 999));