2017-12-15 1 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

.. – Pamela

+0

또한 시도 : foreach 문을 ($ question_array $ key => $ value) { $ to_json [ '증거'] [] = [ 'id'=> $ 키, '선택 ID = = $ 값]; } – Pamela

+0

솔루션 없음 – Pamela

답변

1

정확하게 읽는다면 모든 새로운 대답을 $ to_json 배열에 추가하고 싶습니다. 맞습니까? 나는 그것을하기 위해 다음과 같이 끝내었다. 나는 자유를 가져다가이 도움이되지 않습니다 그래서 만약 저를 수정하시기 바랍니다, 오해 할 수있다 : 나는 array_push ($ question_array, $ to_json = [ 첫 번째 질문과 답변이 덮어 쓰기됩니다 시도

<?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

관련 문제