在PHP中快速创建大型数组[重复]

Possible Duplicate:
How to create an empty array in PHP with predefined size?

In a C-based language, you can very quickly create a large multi-dimensional array that you might use in conjunction with loops for an algorithm or something. Like so:

int foo[50][40];

In PHP, how can you do this? At the moment, the only way I can think of is this:

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

In PHP, you don't have to predefine the size of your array, you can dynamically append it with data, like so:

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

By calling the $bar with [], you'll indicate that a new key should be created and in this case hold value $i.

in PHP-based language you don't need to create arrays "in reserve".
But just add whatever number of elements you need on the fly, as soon as you need it.

BTW, if speed means not the concise code but the speed of the execution, PHP is already a wrong choice for sure.

Try the following:

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

Using SplFixedArray will speed that up (and also make it occupy less memory).

maybe this one can help:

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