2011-07-26 62 views
2
$responses = array(); 
while ($row = mysql_fetch_array($result)) { 
    $response = array(
    'name' => $row['name'] 
    ); 

    $row; 

    $responses['name5'] = $response; 
} 
echo json_encode($responses); 

我目前只從這句話我知道的一個事實得到1行的都多。PHP爲什麼這隻輸出1行?

+0

什麼是8號線在做什麼? –

回答

7

在while循環的每次迭代中,您將覆蓋相同的數組鍵$responses['name5'],因此最終只有$responses數組中有一個值。

相反,你可能希望這樣的事情要追加到數組的末尾:

$responses[] = $response; 
0

因爲您重置$響應陣列對循環中單個陣列。你想添加到數組中。

$responses = array(); 
while ($row = mysql_fetch_array($result)) { 
    array_push($response, array(
    'name' => $row['name'] 
    )); 

    $row; 

    $responses['name5'] = $response; 
} 
echo json_encode($responses); 
1

要覆蓋$響應變量,這就是爲什麼,而不是array_push

1

$迴應[ 'NAME5'] = $反應;

因爲你更換你的數據在每個週期步驟中,您將只得到最後一行。 嘗試此: $應答[ 'NAME5'] [] = $響應;

0

$responses[] = array('name5' => $response);