2014-10-24 5 views
0

Я пытаюсь разобрать этот массив, чтобы сохранить его в базе данных, но я не могу этого сделать.Cant parse multi-array

Это то, что $this->input->post("question") производит:

Array 
(
    [1] => Array 
     (
      [0] => question 1 
      [answer] => Array 
       (
        [0] => answer 1 
        [1] => answer 2 
        [2] => answer 3 
        [3] => asnwer 4 
        [4] => answeer 5 
       ) 

     ) 

    [2] => Array 
     (
      [0] => queston 2 
      [answer] => Array 
       (
        [0] => answer 21 
        [1] => answere 22 
        [2] => anwer 23 
        [3] => answer 24 
        [4] => answer 25 
       ) 

     ) 

) 

Я попытался это:

foreach ($this->input->post("question") as $questions) { 
      foreach ($questions as $question) { 
       $data = array(
        'question' => $question, 
       ); 
       $this->db->insert('questions', $data); 
       $question_id = $this->db->insert_id(); 
//another foreach to go throw answers 

      } 
} 

Просто, чтобы проверить, если я сохраню вопросы правильно, но я получаю это сообщение:

Сообщение: Преобразование матрицы в строку

+0

Кто есть кто в этом массиве? кто является '$ this-> input-> post (" question ")'? –

+0

@AresDraguna $ this-> input-> post ("question") создает массив, напечатанный – Peril

+0

, тогда кто является '$ exam_id'? –

ответ

1

Прежде всего, вы получаете это сообщение, потому что пытаетесь преобразовать массив в строку.

Второе:

foreach ($this->input->post("question") as $questions) { 

} 

первый уровень. После этого вы остаетесь с:

[1] => Array 
(
    [0] => question 1 
    [answer] => Array 
    (
     [0] => answer 1 
     [1] => answer 2 
     [2] => answer 3 
     [3] => asnwer 4 
     [4] => answeer 5 
    ) 

) 

foreach ($this->input->post("question") as $questions) { 
    foreach ($questions as $question) { 
     //here, $question is formed of 2 arrays 
     //[0] => question 1 
     //[answer] => Array 
     // (
     //  [0] => answer 1 
     //  [1] => answer 2 
     //  [2] => answer 3 
     //  [3] => asnwer 4 
     //  [4] => answeer 5 
     // ) 

    }  
} 

Это второй уровень. поэтому в этом foreach вам следует использовать:

$data = array(
    'question' => $question[0], // to get the question string 
); 

Сообщите мне, если что-то еще необходимо!

P.S: для ответов, вы должны пойти на один уровень глубже и сделать другой foreach.