2012-11-21 52 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');