我想创建一个nxnxn大小的3d数组并用0填充它。
实施例
如果n = 3
输出
[
[
[0],[0],[0]
],
[
[0],[0],[0]
]
,
[
[0],[0],[0]
]
],
[
[
[0],[0],[0]
],
[
[0],[0],[0]
]
,
[
[0],[0],[0]
]
],
[
[
[0],[0],[0]
],
[
[0],[0],[0]
]
,
[
[0],[0],[0]
]
]
现在,我可以使用以下方式手动执行此操作:
$array = array_fill(0,3,array_fill(0,3,array_fill(0,3,0)));
但是,我需要动态定义数组。
如果n = 4,则3d数组将
$array = array_fill(0,4,array_fill(0,4,array_fill(0,4,array_fill(0,4,0)));
答案 0 :(得分:1)
这应该有效
function getNDimensionalArray($n)
{
$x = $n;
$value = array();
while ($x) {
$value = array_fill(0, $n, $value);
$x--;
}
return $value;
}
答案 1 :(得分:1)
function hypercube($n, $obj=0) {
for ($i = $n; $i; $i--) {
$obj = array_fill(0, $n, $obj);
}
return $obj;
}
注意:hypercube(3)
将生成一个3x3x3的数组。您的示例显示了一个3x3x3x1的数组(由于[0]
。您可以hypercube(3, array(0))
来获取样本。