2012-11-21 53 views
2

也许我只是无法理解PHP如何处理数组。PHP foreach echo打印“数组”作为值

我想使用foreach循环打印出一个数组。我所能看到的只是“数组”这个词。

<?php 
    $someArray[]=array('1','2','3','4','5','6','7'); // size 7 
    foreach($someArray as $value){ 
     echo $value;  
?> 

<br /> 

<?php 
    } 
?> 

此打印出这一点:

Array 

我无法理解为什么会出现这种情况。如果我像上面那样定义一个阵列,它将打印“阵列”。它几乎好像我必须手动定义一切......这意味着我必须做错了什么。

这工作:

<?php 
    $someArray[0] = '1'; 
    $someArray[1] = '2'; 
    $someArray[2] = '3'; 
    $someArray[3] = '4'; 
    $someArray[4] = '5'; 
    $someArray[5] = '6'; 
    $someArray[6] = '7'; 

    for($i=0; $i<7; $i++){ 
     echo $someArray[$i]."<br />"; 
    } 
?> 

为什么不会在foreach工作?

这里有一个链接,看到它在行动>>http://phpclass.hylianux.com/test.php

回答

10

您没有正确声明数组。
您必须删除方括号:[]

<?php 
$someArray=array('1','2','3','4','5','6','7'); // size 7 
foreach($someArray as $value){ 
    echo $value;  
?> <br /> 
<?php 
} 
?> 
+1

+1。为了让OP完全清楚,'[] ='操作符实质上意味着“将右手参数附加到数组,这是左手参数。”因此,您已经将数组['1','2','3','4','5','6','7']'追加到虚数,导致'[['1' , '2', '3', '4', '5', '6', '7']]';其第一个(也是唯一的)元素是您指定的数组的第一个数组。 –

+0

就是这样。人...我是跨语言混淆语法的受害者。我太习惯于java :) – Hylianux

2

尝试:

<?php 
$someArray = array('1','2','3','4','5','6','7'); // size 7 
foreach($someArray as $value){ 
    echo $value . "<br />\n"; 
} 
?> 

或者:

<?php 
$someArray = array(
    0 => '1', 
    'a' => '2', 
    2 => '3' 
); 
foreach($someArray as $key => $val){ 
    echo "Key: $key, Value: $val<br/>\n"; 
} 
?> 
1

实际上,你要添加一个阵列到另一个阵列。

$someArray[]=array('1','2','3','4','5','6','7'); 

正确的方法是

$someArray=array('1','2','3','4','5','6','7');