2016-08-10 30 views
0

Codeigniter 3で配列を作成しようとしていますが、正しく構築できないようです。Codeigniterを使用してPHPで配列を作成する

私は基本的に2つのテーブルを結合する必要があります。質問とそれに関連する回答。

だから、基本的に私は多次元配列が必要です。それぞれの内部配列は質問データとそれに関連する回答データを含んでいます。

これは私が現時点ではやっているものです:

$question_array = array(); 

foreach($course_object->result() as $question){ 

    $question_array[] = array (
     'question_id' => $question->question_id, 
     'question' => $question->question, 
    ); 

    $answer_data = $this->get_answer_data($question->question_id); 

    foreach($answer_data as $answer){ 
     $question_array[]['answer'] = $answer->answer; 
     $question_array[]['result'] = $answer->result; 
    } 
} 

return $question_array; 

しかし、それは自分自身で配列だけでなく、それぞれの答えとして各質問を出力し、私は何とかそれらを結合する必要があります。

array(2) { 
    ["question_id"]=> 
    string(3) "548" 
    ["question"]=> 
    string(29) "Who enforces fire safety law?" 
} 

array(1) { 
    ["answer"]=> 
    string(11) "The Manager" 
} 

array(1) { 
    ["result"]=> 
    string(1) "0" 
} 



array(1) { 
    ["answer"]=> 
    string(18) "The Fire Authority" 
} 


array(1) { 
    ["result"]=> 
    string(1) "1" 
} 

をし、これは私が必要なものです::

array(2) { 
    ["question_id"]=> 
    string(3) "548" 
    ["question"]=> 
    string(29) "Who enforces fire safety law?" 
    ["answer"]=> 
    string(11) "The Manager" 
    ["result"]=> 
    string(1) "0" 
    ["answer"]=> 
    string(18) "The Fire Authority" 
    ["result"]=> 
    string(1) "1" 
} 

私はarray_pushのようなものを試してみたが、私はそれが動作するように取得するように見えるカントこれは私が取得しています何ですか?

私は何を試すことができますか?

+0

あなたは 'でvar_export($ course_object->結果())の結果を投稿することができます;、魔法のように' – Hackerman

答えて

2

これを行う最も簡単な方法は、必要なものを使って新しい配列を作成し、$question_arrayに追加することです。配列にキーを重複させることはできないので、解答の新しい部分配列が必要になります。

foreach($course_object->result() as $question){ 

    $q_array = array (
     'question_id' => $question->question_id, 
     'question' => $question->question, 
     'answers'  => array() 
    ); 

    $answer_data = $this->get_answer_data($question->question_id); 

    foreach($answer_data as $answer){ 
     $q_array['answers'][] = array(
      'answer' => $answer->answer, 
      'result' =>$answer->result 
     ); 
    } 
    $question_array[] = $q_array; 
} 
+0

作品ありがとうございました! – frobak

0

これはうまくいくと思います。

$question_array = array(); 

$i = 0; 
foreach($course_object->result() as $question){ 

    $question_array[$i] = array (
     'question_id' => $question->question_id, 
     'question' => $question->question, 
    ); 

    $answer_data = $this->get_answer_data($question->question_id); 

    foreach($answer_data as $answer){ 
     $question_array[$i]['answer'][] = $answer->answer; 
     $question_array[$i]['result'][] = $answer->result; 
    } 

    $i++; 
} 

return $question_array; 
関連する問題