2011-12-27 145 views
1

我有一个多维数组如下: -PHP多维数组 - foreach循环显示最后一个数组

$worksheet = array(
    'sheet 1' => array(
    '#1 sheet 1', 
    ' #2 sheet 1', 
    '#3 sheet 1' 
), 

    'sheet 2' => array(
    '#1 sheet 2', 
    '#2 sheet 2' 
), 

    'sheet 3' => array(
    '#1 sheet 3', 
    '#2 sheet 3' 
) 
); 

然后我运行PHP代码如下:

foreach($worksheet as $ws=>$value) 
    echo $ws.'<br/>'; 
{ 
    foreach($value as $sheet=>$ivalue) 
    { 
    echo $ivalue.'<br/>'; 
    } 
} 

上面的代码才会生成,最后阵列状如下:

 
sheet 1, sheet 2, sheet 3, #1 sheet 3, #2 sheet 3 

什么都得发生在我的:

 
#1 sheet 1, #2 sheet 1, #3 sheet 1, #1 sheet 2, #2 sheet 2. 
+0

试着问前清理你的缩进内。 – babonk 2011-12-27 01:38:21

+0

更新了缩进以使代码更具可读性。 @FirstLast,请编辑您的问题以移动'echo $ ws。'
';'它实际存在于你的代码中。 – 2011-12-27 01:41:59

回答

1

修复您的语法。按照您的意愿,echo不在{}之内。否则,PHP会假定你只是想做回声,并不会意识到你想要做一个内部循环。

要解决:

foreach($worksheet as $ws=>$value) 
{ 
    echo $ws.'<br/>'; 
1

因为你做了一个错误。代码的第二行和第三行是相反的。该代码应该是这样的:

foreach($worksheet as $ws=>$value) 
{ 
     echo $ws.'<br/>'; 

因此,您的代码与外部foreach通过回波循环,然后,在由托架{包围的“部分”,是做另一个循环(内foreach) 。

+0

谢谢奥雷利奥德罗莎。 – 2011-12-27 01:44:43

1
echo $ws.'<br/>' 

应该是括号