2015-10-05 86 views
0

我在創建JSON數組時遇到了一些麻煩。它應該看起來像下面這樣:php創建響應json數組

error : false 
    duellid : 1 
    questions : [ 
    { questionid : xx 
     question : lala 
     answer : blabla }, 
    { questionid : xx 
     question : lala 
     answer : blabla }, 
    { questionid : xx 
     question : lala 
     answer : blabla } 
] 

目前的問題是創建JSON響應中的頂級陣列的問題:

$response["error"] = FALSE; 
     $duellid = $duell["id"]; 

     $response["duell"] = $duellid; 
     array_push($return_arr,$response); 
     $response = array(); 
     $resultquestion = $db->getquestions($rows); 
     while ($row = mysql_fetch_array($resultquestion)) { 


      $response["question"]["id"] = $row["id"]; 
      $response["question"]["question"] = $row["question"]; 
      $response["question"]["answer"] = $row["answer"]; 
      $response["question"]["active"] = $row["active"]; 
      $response["question"]["minval"] = $row["minval"]; 
      $response["question"]["maxval"] = $row["maxval"]; 

      array_push($return_arr,$response); 

     } 


     echo json_encode($return_arr); 

我認爲這是很容易,但我無法找到正確的方法。

回答

1
$response = array(); 
$response["error"] = FALSE; 
$duellid = $duell["id"]; 
$response["duell"] = $duellid; 
$resultquestion = $db->getquestions($rows);  
$response['questions'] = array(); 
while ($row = mysql_fetch_array($resultquestion)) { 

    $result = array(
     'questionid' => $row["id"], 
     'question' => $row["question"], 
     'answer' => $row["answer"], 
     'active' => $row["active"], 
     'minval' => $row["minval"], 
     'maxval' => $row["maxval"] 

    ); 
    $response['questions'][] = $result;    

}   
echo json_encode($response); 
+0

媽的,你能描述你做了什麼,爲什麼,這將提高這個答案。 – jmattheis

+0

@搖滾抱歉。我會關注下一個 –

+0

作品完美!謝謝!希望我能夠在我自己的問題陣列中添加一個新陣列;) – markus

0

陣列推,推它在陣列的末端。所以結果沒有關鍵問題。而不是:

array_push($return_arr,$response); 

簡單地把它這樣的:你快

$response = array('questions'=>array()); 
$response["error"] = FALSE; 
$response["duell"] = $duell["id"]; 
$resultquestion = $db->getquestions($rows); 
while ($row = mysql_fetch_array($resultquestion)) { 
    $r = array(); 
    $r["id"] = $row["id"]; 
    $r["question"] = $row["question"]; 
    $r["answer"] = $row["answer"]; 
    $r["active"] = $row["active"]; 
    $r["minval"] = $row["minval"]; 
    $r["maxval"] = $row["maxval"]; 
    $response["questions"][] = $r; 

    // or nicer: 
    $response["questions"][] = array(
     'question' => 'Your question', 
     'answer' => 'any answer' 
    ); 
} 
echo json_encode($response);