Php 如何从二维数组中获取值
这段代码有什么问题Php 如何从二维数组中获取值,php,arrays,Php,Arrays,这段代码有什么问题 <?php $myarray=array_fill ( 0 , 2 , array_fill (0,1,3) ); echo "> ".$myarray[0][1]." < <br>"; ?> <?php $myarray=array_fill ( 0 , 2 , array_fill (0,1,3) ); echo "<pre>"; print_r($myarray); echo "</pre>";
<?php
$myarray=array_fill ( 0 , 2 , array_fill (0,1,3) );
echo "> ".$myarray[0][1]." < <br>";
?>
<?php
$myarray=array_fill ( 0 , 2 , array_fill (0,1,3) );
echo "<pre>";
print_r($myarray);
echo "</pre>";
echo "> ".$myarray[0][0]." < <br>";
?>
上述echo命令的结果如下:
> <
><
我的期望是:3您的代码确实创建了一个二维数组,但这是实际数据:
array(2) {
[0] =>
array(1) {
[0] =>
int(3)
}
[1] =>
array(1) {
[0] =>
int(3)
}
}
因此,$myarray[0][1]
不存在
对array\u fill()
的外部调用创建一个包含两个元素的数字数组,内部调用一个包含一个元素和值的数组3
。两个密钥集都以0
开头。这就是为什么在内部数组中没有键1
,而只有0
作为其中的唯一键
请阅读文档中关于函数参数的说明:试试这个
foreach($myarray as $val_array)
{
foreach($val_array as $val)
{
echo $val."<br>";
}
}
第0个索引$myarray[0][1]中没有1个索引
输出:
数组
(
[0]=>阵列
(
[0] => 3
)
[1] =>阵列
(
[0] => 3
)
)
> 3 <
没有$myarray[0][1]请尝试此回显“>”$myarray[0][0]。“<”;谢谢你的回答。现在我知道了。。。不仔细阅读手册是我的错-我认为array_fill函数中的第二个参数代表“end index”,而它代表数组中元素的数量。
<?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 <