我需要一个预先填充有数值的多维,这样;
for($m = 0; $m <= 149; $m++){
for($n = 0; $n <= 99; $n++){
$pitchDef[$m][$n] = 999;
}
}
但是 PHP 简单地读取预先填充的数组会更快吗?
换句话说,php读取或创建数组是否更快?
array_fill(0, 150, array_fill(0, 100, 999));
我很确定这是你能得到的最快速度.. 它比两个 for 循环快得多,但在单独运行时两者仍然非常快。
这可能会帮助你 array_fill()
每次给内存分配一个新变量都需要首先找出内存是如何需要的,然后从系统中分配它,然后再写入。在这三个步骤中,写入本身(最后一个操作)与读取的时间相同(我想),但是整个作业更长,因为它还有两个步骤。
如果你有你的数组,在这个例子中,你甚至没有说数组有多大,所以每次编写 PHP 都需要改变整个数组的结构,然后为一个元素分配内存然后写入它。
至少你可以像 ExplesionPills 写的那样在一开始就为数组分配内存,然后访问数组。
最好的想法是通过让它们运行多次(“many”是例如 100 万次)来比较(“基准”)两种方法并查看执行时间。