2014-05-13 30 views
0

有人可以解釋我爲什麼我不能從數組中獲取數據嗎? 我的回聲只返回「數組」。我哪裏錯了?我的數組返回數組在內部foreach

<?php 
$people = array( 
array("name"=>"Bob","age"=>8,"colour"=>"red"), 
array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
array("name"=>"Andy","age"=>5,"colour"=>"purple")); 


foreach($people as $vperson => $person){ 

    echo $person; 

} 
?> 
+1

因爲你的陣列是一個___nested___陣列;在$人民陣列中的每個元素,是一個子陣列 –

+2

如果您正在尋找打印的名字......做到這一點'回聲$人[「姓名」];',而不是'$回聲人;' –

+0

使用print_r的,而不是回聲.. $ vperson將打印鍵和$ person將打印嵌套數組 –

回答

2

那麼正如你所說你有一個數組,你的變量$ person也是一個數組,所以你不能只是迴應那個。您可以通過名稱「年齡,名稱和顏色」來訪問值。因爲,你的打印陣列echo

<?php 
$people = array( 
array("name"=>"Bob","age"=>8,"colour"=>"red"), 
array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
array("name"=>"Andy","age"=>5,"colour"=>"purple")); 


foreach($people as $vperson => $person){ 

    echo $name = $person['name']; 
    echo $age = $person['age']; 
    echo $colour = $person['colour']; 
    echo "<br>"; 

} 
?> 
+2

也可以在你的foreach中做一個var_dump,就像這樣:var_dump($ person),那麼你會得到更好的工作方式。 – romulos

+0

非常感謝朋友解決我的問題並給我解釋。 – user3632137

0

試試這個。

可以打印陣列,如:

<?php 
    $people = array( 
    array("name"=>"Bob","age"=>8,"colour"=>"red"), 
    array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
    array("name"=>"Andy","age"=>5,"colour"=>"purple")); 
    foreach($people as $vperson => $person){ 
    echo '<pre>'; 
     print_r($person); 
    echo '</pre>'; 


echo $name = $person['name']; 
    echo $age = $person['age']; 
    echo $colour = $person['colour']; 
    } 
0

用它顯示鍵和等值

foreach($people as $pe) 
{ 
    foreach($pe as $key => $person) 
    { 
    echo $key.' : '.$person.' </br> '; 
    } 
}