2015-10-05 3 views
0

J'ai des problèmes pour créer un tableau JSON. Il devrait ressembler à ce qui suit:php create response json array

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

Actuellement, le problème est de créer les principales questions de tableau dans la réponse 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); 

Je pense qu'il est facile, mais je ne peux pas trouver la bonne façon.

Répondre

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

Maudit sois-tu été plus rapide, vous pouvez décrire ce que vous avez fait et pourquoi, cela améliorerait cette réponse. – jmattheis

+0

@Rocky sorry.i se soucie de la prochaine –

+0

fonctionne parfaitement! THX! J'espère que je suis capable d'ajouter un nouveau tableau dans le tableau de questions par moi-même;) – markus

0

Array push, appuyez sur l'extrémité du réseau. Donc, le résultat est sans questions clés. au lieu de:

array_push($return_arr,$response); 

simplement mis comme ça:

$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);