用PHP快速创建大型数组

时间:2011-12-16 10:22:29

标签: php arrays loops multidimensional-array

  

可能重复:
  How to create an empty array in PHP with predefined size?

在基于C语言中,您可以非常快速地创建一个大型多维数组,您可以将其与循环一起用于算法或其他内容。像这样:

int foo[50][40];

在PHP中,你怎么能这样做?目前,我能想到的唯一方法是:

$bar = array();
for ($a = 0; $a<50; $a++) {
    for ($b = 0; $b++; $b<40) {
        $bar[$a][$b] = 0;
    }
}

5 个答案:

答案 0 :(得分:3)

在PHP中,您不必预定义数组的大小,您可以使用数据动态地附加数据,如下所示:

$bar = array();
for($i = 0;$i < 50;$i++) {
    $bar[] = $i;
}

通过使用[]调用$ bar,您将指示应创建一个新密钥,在这种情况下保持值$ i。

答案 1 :(得分:2)

使用SplFixedArray会加快速度(并且还会占用更少的内存)。

答案 2 :(得分:0)

在基于PHP的语言中,您不需要“保留”创建数组 但只要您需要,就可以随时添加您需要的任何数量的元素。

顺便说一句,如果速度意味着不是简洁的代码而是执行的速度,那么PHP肯定是一个错误的选择。

答案 3 :(得分:0)

尝试以下方法:

$bar = range(0, 50);
foreach ($bar as $k => $v) {
    $bar[$k] = range(0, 40);
};

答案 4 :(得分:0)

也许这个可以帮助:

    $b = array_fill(0,50,0);
    $a = array_fill(0,50,$b);
//and so on, depending on how many dimensions do you need