在PHP中创建一个空的2D数组?

我知道数组是动态创建的,提前创建它们并不是必需的,但是如何使用2D数组来做到这一点呢?同样的方式?

(for$j)
{
for($i)
    {
    $array[j][i] = "data";
    }
}

类似的东西?当然,对于循环来说,这显然是真实的。


答案 1

在最简单的情况下,可以将2D维数组创建为:

<?php
    $emptyArray = array(array());
?>

或者从 PHP 5.4 开始,您还可以使用:

<?php
    $emptyArray = [[]];
?>

答案 2

你不会在PHP中创建2d数组,而不是传统意义上的2d数组。

上面的建议实际上是简单地创建以下数组:$a = array(array());

$a = array(
    0 => array( )
);

因此,将导致以下结果:$a[0][0] = 'test';

$a = array(
    0 => array(
        0 => 'test'
    )
);

乍一看,它看起来很有效,但实际上,这仍然不是2d数组。当您尝试使用第 2 行(索引 1)时,此时 PHP 会抛出通知。例如:

$a[1][0] = 'test2';

这是因为不包含任何内容(请记住,只需在索引 0 处创建一个数组?)。$a[1]array(array())

要使它起作用,您需要再次执行 ,或者如果要避免索引,则可以执行。$a[1] = array();$a[] = array();


$a = array(); // array of columns
for($c=0; $c<5; $c++){
    $a[$c] = array(); // array of cells for column $c
    for($r=0; $r<3; $r++){
        $a[$c][$r] = rand();
    }
}

上面的代码创建一个5x3的随机数“2d数组”。