1

我需要一个预先填充有数值的多维,这样;

for($m = 0; $m <= 149; $m++){
    for($n = 0; $n <= 99; $n++){
            $pitchDef[$m][$n] = 999;
    }
 }

但是 PHP 简单地读取预先填充的数组会更快吗?

换句话说,php读取或创建数组是否更快?

4

3 回答 3

1
array_fill(0, 150, array_fill(0, 100, 999));

我很确定这是你能得到的最快速度.. 它比两个 for 循环快得多,但在单独运行时两者仍然非常快。

于 2013-03-08T08:20:22.587 回答
1

这可能会帮助你 array_fill()

于 2013-03-08T08:21:38.353 回答
1

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

如果你有你的数组,在这个例子中,你甚至没有说数组有多大,所以每次编写 PHP 都需要改变整个数组的结构,然后为一个元素分配内存然后写入它。

至少你可以像 ExplesionPills 写的那样在一开始就为数组分配内存,然后访问数组。

最好的想法是通过让它们运行多次(“many”是例如 100 万次)来比较(“基准”)两种方法并查看执行时间。

于 2013-03-08T08:22:01.933 回答