2016-09-26 43 views
-2

这段代码有什么问题?上述回波命令如何从二维数组中获得价值

<?php 
$myarray=array_fill (0 , 2 , array_fill (0,1,3)); 
echo "> ".$myarray[0][1]." < <br>"; 
?> 

结果是以下:

> < 

我期望是 '> 3 <' 将被显示。

如何在本例中正确访问二维数组的值?

感谢

+0

没有$ myArray的[0] [1]试试这个回声 “>” 。$ myarray [0] [0]。“<
”; – JYoThI

回答

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

谢谢你的回答。现在我知道......这是我的错,不仔细阅读手册 - 我认为array_fill函数中的第二个参数代表'end index',而它代表数组中元素的数量。 – sameucho

0

试试这个,

foreach($myarray as $val_array) 
{ 
    foreach($val_array as $val)  
    { 
     echo $val."<br>"; 
    } 
} 

输出:

3 
3 

DEMO

+0

任何** Downvote **请原因? – Dave

0

没有1个指数在第0指数$ myArray的[0] [1]

<?php 

$myarray=array_fill (0 , 2 , array_fill (0,1,3)); 

echo "<pre>"; 

print_r($myarray); 

echo "</pre>"; 


echo "> ".$myarray[0][0]." < <br>"; 
?> 

OUTPUT:

Array 
(
[0] => Array 
    (
     [0] => 3 
    ) 

[1] => Array 
    (
     [0] => 3 
    ) 

) 

    > 3 <