2017-12-15 12 views
0

APIへの各リクエストで以前の値がすべて再送信されるAPIを使用しています。以前の値をすべてPHPセッションに保存しています。結果の配列構造体はjson_encodedで、Curlリクエストに使用されます。既存のものに新しい質問を追加する以外はすべて正常に動作しています。私は形式の既存のデータ構造に付加することができますどのように APIリクエスト用の既存の配列構造体へのセッション値の受け渡しPHP

Array ([0] => Array ( 
[1] => Array ([questionid] => p_48 [questionanswer] => absent) 
[2] => Array ([questionid] => p_122 [questionanswer] => absent) 
)) 

$question_counter = ++$_SESSION['question_counter']; 
$questionidnew = strip_tags($_POST['questionid1']); 
$answernew = strip_tags($_POST['answer1']); 
//store new questions as session array 
$_SESSION['questions'][$question_counter] = array(
    'questionid' => $questionidnew, 
    'questionanswer' => $answernew, 
    ); 
$question_array[] = $_SESSION['questions'];//previous questions 

print_r($question_array);は、以下の結果を得られます。以下はコードです

$to_json = [ 
    'sex' => $gender, 
    'age' => $age, 
    'evidence' => [ 
    ['id' => $test_id1, 'choice_id' => 'present', 'initial' => true], 
    ['id' => $test_id2, 'choice_id' => 'present', 'initial' => true], 
    ['id' => $questionidnew, 'choice_id' => $answernew], 
    ['id' => 'p_12', 'choice_id' => $choice, 'initial' => true], 
    ['id' => $location, 'choice_id' => 'present', 'initial' => true] 
    ], 
    'extras' => [ 
    'disable_users' => true 
    ], 
]; 

私はので、初心者プログラマー、私はエラーが発生しており、セッションからの以前の質問のために以下を追加するのが混乱していることが分かります:

['id' => $questionidnew, 'choice_id' => $answernew], 

ヘルプをリクエストしています。

+0

を私はarray_push($ question_array、$ to_jsonを= [ 最初の質問と答えが上書きされます。.. – Pamela

+0

をも試みてみました($ question_arrayを$ key => $ value) { $ to_json ['evidence'] [] = ['id' => $ key、 'choice_id' => $ value]; } – Pamela

+0

解決策がない? – Pamela

答えて

1

これを正しく読んでいれば、新しい答えをすべて$ to_json配列に追加したいと思っています。私はそれを達成するために次のことを終わらせました。私は自由を取ったと誤解している可能性があり、これは便利ではありませんので、もし、私を修正してください:foreachの:

<?php 
session_start(); 
if(!isset($_SESSION['question_counter'])) { 
    $_SESSION['question_counter'] = 0; 
} 

$gender = "male"; 
$age = 46; 
$test_id1 = 12; 
$test_id2 = 24; 
$questionidnew = 9; 
$answernew = "B"; 
$choice = "A"; 
$location = "campus"; 

$to_json = array(
    'sex' => $gender, 
    'age' => $age, 
    'evidence' => array(
    array('id' => $test_id1, 'choice_id' => 'present', 'initial' => true), 
    array('id' => $test_id2, 'choice_id' => 'present', 'initial' => true), 
    array('id' => $questionidnew, 'choice_id' => $answernew), 
    array('id' => 'p_12', 'choice_id' => $choice, 'initial' => true), 
    array('id' => $location, 'choice_id' => 'present', 'initial' => true) 
), 
    'extras' => array(
    'disable_users' => true 
), 
); 

$question_counter = ++$_SESSION['question_counter']; 
//$questionidnew = strip_tags($_POST['questionid1']); 
//$answernew = strip_tags($_POST['answer1']); 
//store new questions as session array 
$_SESSION['questions'][$question_counter] = array(
    'questionid' => $questionidnew, 
    'questionanswer' => $answernew, 
    ); 
$question_array[] = $_SESSION['questions'];//previous questions 

echo "<pre>"; 
print_r($to_json); 
echo "</pre>"; 
//$_SESSION['names'][] = $name; 

foreach($question_array as $question) { 
    foreach($question as $key => $value) { 
    $to_json['evidence'][] = array('id' => $value['questionid'], 'choice_id' => $value['questionanswer']); 
    } 
} 
echo "<pre>"; 
print_r($to_json); 
echo "</pre>"; 
print_r(json_encode($to_json)); 
?> 
+0

あなたは私の誕生日を救ってくれました。私は$ to_json = arrayの前にセッション配列として新しい質問を格納していた以外はすべてが完璧でした。 – Pamela

+0

Wonderf ul、あなたがそれを理解したことを聞いてうれしいです! – tbedner

関連する問題