2011-08-08 112 views
0

我在PHP中遇到數組問題。因此,讓我們看看:我在數據庫中有一個「用戶」表,其中包含「姓名,年齡,評分」等字段。用戶數量將近100人。我需要從數據庫中獲取所有這些數據,並將其發佈到數組中,並使用JSON結束顯示對其進行編碼。所以我想,我需要做如下:php中的多維數組

  1. 從數據庫中獲取一行。
  2. 將所有數據添加到某些數組字段,如關聯數組。
  3. 將該數組推送到某個數組容器。
  4. 將數組容器編碼爲JSON。

但是當我嘗試編碼,我得到了數組容器只有最後一個元素。我創作的類似的東西:

$arrContainer = array(); 
$arr = array(); 
$i = 0; 
while($row = getDataFromDB) 
{ 
    arr[$i] = $i; 
    arr["name"] = row["name"]; 
    arr["age"] = row["age"]; 

    array_push($arrContainer, $arr); 
    $i++; 
} 

JSON.encode($arrContainer); 

問:我怎樣才能使一些數據數組的數組?非常感謝!

回答

1

試試這個:

$arr = array(); 
$i = 0; 
while($row = getDataFromDB){ 
    $arr[$i] = $row; 
    $i++; 
} 
JSON.encode($arr); 
+0

爲什麼諾茨?如果他想要它編號? – xXx

1

您可以創建數組爲@ RIAD的回答 然後輸出JSON作爲..

while($row = getDataFromDB) // @RiaD's code 
{ 
    $arr[]=$row; // add $row as element of $arr array 
} 

//json output 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
header('Content-type: application/json'); 
echo json_encode($your_array); 
1

你已經發布的代碼是正確的,但在以下行,你忘了$arr變量之前把$

arr[$i] = $i; 
arr["name"] = row["name"]; 
arr["age"] = row["age"]; 

另外行arr[$i] = $i;應該可能是類似於$arr['rowNum'] = $i;有關鍵是相同的值看起來多餘。

而且應該說,使用$arrContainer[]=$row;作爲@RiaD建議是一個更快的方式來獲得該行的數組,array_push()更意在多個值添加到一個數組,或者如果你想要把它當作一個堆棧。

0
$allValuesArr = array(); 
$arr= array(); 
while($myRow = mysql_fetch_array($result)) 
{ 
    $arr["uid"] = $myRow["uid"]; 
    $arr["name"] = $myRow["name"]; 
    $arr["surname"] = $myRow["surname"]; 
    $arr["age"] = $myRow["age"]; 
    $arr["telephone"] = $myRow["telephone"]; 
    $arr["prof_id"] = $myRow["prof_id"]; 
    //$allValuesArr[] = $arr; 
    array_push($allValuesArr, $arr); 
} 

$strJSON = json_encode($allValuesArr); 
echo $strJSON; 

響應我得到:

[{"uid":"1","name":"Sergii","surname":"Surname1","age":"26","telephone":"0976543135","prof_id":"1225423"},{"uid":"2","name":"Slava","surname":"Surname2","age":"24","telephone":"06353524","prof_id":"13584384"},{"uid":"3","name":"Desame","surname":"Surname3","age":"28","telephone":"0973153584","prof_id":"35843815"}] 
+0

這就是我得到的。這樣對嗎? – yozhik