Jos*_*hua 32 php arrays dynamic multidimensional-array
我知道数组是动态创建的,并且提前创建它们并不是必需的,但是如何用2D数组做到这一点?一样的方法?
(for$j)
{
for($i)
{
$array[j][i] = "data";
}
}
Run Code Online (Sandbox Code Playgroud)
那样的东西?当然,显然是真正的循环.
Bre*_*len 48
在绝对最简单的情况下,可以创建2D维数组:
<?php
$emptyArray = array(array());
?>
Run Code Online (Sandbox Code Playgroud)
或者从PHP 5.4开始,您还可以使用:
<?php
$emptyArray = [[]];
?>
Run Code Online (Sandbox Code Playgroud)
Chr*_*ian 21
您不在PHP中创建二维数组,而不是传统意义上的数组.
以上建议$a = array(array());实际上只是创建以下数组:
$a = array(
0 => array( )
);
Run Code Online (Sandbox Code Playgroud)
因此,$a[0][0] = 'test';会导致以下结果:
$a = array(
0 => array(
0 => 'test'
)
);
Run Code Online (Sandbox Code Playgroud)
乍一看,它看起来很有效,但事实上,这仍然不是一个二维数组.当您尝试使用第二行(索引1)时,此时,PHP会发出通知.例如:
$a[1][0] = 'test2';
Run Code Online (Sandbox Code Playgroud)
这是因为$a[1]不包含任何东西(记得array(array())只是在索引0处创建一个数组?).
为了它的工作,你需要再次做$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();
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码创建了一个随机数的5x3"2d数组".
| 归档时间: |
|
| 查看次数: |
59611 次 |
| 最近记录: |