2016-09-27 3 views
1

Я хочу читать вопросы из текстового документа на PHP и сортировать их в array().Чтение вопросов из текстового файла

Полученный массив должен выглядеть следующим образом:

print_r($questionnaire); 

array(
     'question 1' => array('yes','no'), 
     'question 2' => array('yes','no'), 
     'question 3' => array('yes','no'), 
     ...etc 
) 

Мой текст документа:

question 1? 
yes 
no 
question 2? 
yes 
no 
question 3? 
yes 
no 

Я пытаюсь это:

$txt_doc = $_FILES['txt_doc']['tmp_name']; 

$questions_and_answers = array(); 

$handle = fopen($txt_doc, 'r') or die($txt_doc . ' : CAnt read file'); 


       $i = 0; 
       while (! feof($handle)) 
       { 
        $line = trim(fgets($handle)); 

        if(strstr($line, '?'))//its a question 
        { 
         $questions_and_answers[$i] = $line;$i++; 
        } 
        if(!strstr($line, '?')) 
        { 
         $questions_and_answers[$i][] = $line; 
        }      

       } 
+1

Тогда что происходит, когда вы это пытаетесь? Если он не делает то, что вы ожидаете, может объяснить, что он делает вместо этого? –

ответ

0

Для того, чтобы произвести вывод, который вы хотите, вам нужно использовать этот вопрос в качестве ключа массива в $questions_and_answers. Если вы сделаете это, $i станет ненужным. Вы можете сделать ту же проверку для вопросительного знака, что и вы, и когда вы доберетесь до вопроса, создайте новый ключ. Затем используйте этот ключ для последующих строк (ответов), пока не переходите к следующему вопросу.

while (!feof($handle)) { 
    $line = trim(fgets($handle)); 
    if (strstr($line, '?')) {       // it's a question 
     $question = $line; 
    } else {           // it's an answer 
     $questions_and_answers[$question][] = $line; 
    } 
} 
Смежные вопросы