这段代码出了什么问题?
<?php
$myarray=array_fill ( 0 , 2 , array_fill (0,1,3) );
echo "> ".$myarray[0][1]." < <br>";
?>
上述echo命令的结果如下:
> <
我的期望是&#39;&gt; 3&lt;&#39;会显示。
如何正确访问二维数组的值,如本例所示pls?
由于
答案 0 :(得分:1)
您的代码确实创建了一个二维数组,但这是实际数据:
array(2) {
[0] =>
array(1) {
[0] =>
int(3)
}
[1] =>
array(1) {
[0] =>
int(3)
}
}
所以$myarray[0][1]
不存在。
对array_fill()
的外部调用创建了一个包含两个元素的数值数组,内部数组包含一个元素,值为3
。两个密钥集都以0
开头。这就是为什么不在内部数组中获取键1
,而只有0
作为唯一键。
请阅读有关记录的函数参数的说明:http://php.net/manual/en/function.array-fill.php
答案 1 :(得分:0)
试试这个,
foreach($myarray as $val_array)
{
foreach($val_array as $val)
{
echo $val."<br>";
}
}
输出:
3
3
<强> DEMO 强>
答案 2 :(得分:0)
第0个索引$ myarray [0] [1]
中没有1个索引<?php
$myarray=array_fill ( 0 , 2 , array_fill (0,1,3) );
echo "<pre>";
print_r($myarray);
echo "</pre>";
echo "> ".$myarray[0][0]." < <br>";
?>
输出:
Array
(
[0] => Array
(
[0] => 3
)
[1] => Array
(
[0] => 3
)
)
> 3 <