2016-11-09 3 views
0

У меня есть 1D массив опций и 1D массив ответов, 3 варианта и 1 ответ на каждый вопрос. Я хочу иметь возможность рандомизировать позиции каждой строки $randomOption, поэтому я пытаюсь поместить ее в 2D-массив. Я не уверен, как это сделать.Как назначить значения 2D-массиву в цикле?

$randomOption = array(); 

For($x = 0; $x=$noQuestions-1; $x++){ 
    $randomOption[$x,$x*4] = $options[$x*3]; 
    $randomOption[$x,$x*4+1] = $options[$x*3+1]; 
    $randomOption[$x,$x*4+2] = $options[$x*3+2]; 
    $randomOption[$x,$x*4+3] = $answer[$x]; 

    echo $randomOption[$x, $x*4]; 
    echo $randomOption[$x, $x*4+1]; 
    echo $randomOption[$x, $x*4+2]; 
    echo $randomOption[$x, $x*4+3]; 
} 
+1

Каков ожидаемый выход? Также добавьте входные массивы. –

+0

Что такое '$ noQuestions'? – Tiger

+0

Что такое запятая в имени ключа '[$ x, $ x * 4]' предположим? (как бы то ни было, это даст вам ошибку синтаксического анализа). –

ответ

0

Человек, я не знаю, какой код вы там написали, но у меня есть идея, что вы хотите сделать. Вот рабочий код:

// I assume you have some array with questions,their options and answers in it like : array(question, option_array, answer) 
$question_option_answer_array = array(array('question1',array('a','b','c'),'a'), array('question2',array('A','B','C'),'B'), array('question3',array('I','II','III'),'I')); 
$noQuestions = count($question_option_answer_array); 
$options = array(); 
$answers = array(); 
for($i=0;$i<$noQuestions;$i++){ 
    $options[] = $question_option_answer_array[0][1]; 
    $answers[] = $question_option_answer_array[0][2]; 
} 
$options = array(array('a','b','c'),array('A','B','C'),array('I','II','III')); 
$answers = array('a','B','I'); 
$limit = count($answers); 
$mixArray = array(); 
for($i=0;$i<$limit;$i++){ 
    shuffle($options[$i]); 
    echo 'My Options :<br>'; 
    foreach($options[$i] as $op){ 
    echo $op.'<br>'; 
    } 
    echo 'My answer :'.$answers[$i].'<br><br>'; 
} 

Один пример вывода:

My Options : 
c 
a 
b 
My answer :a 

My Options : 
A 
C 
B 
My answer :B 

My Options : 
III 
II 
I 
My answer :I 

Это будет меняться каждый раз, как вы хотите. Он организует ваши варианты случайным образом каждый раз, и ваш ответ остается неповрежденным по отношению к каждому набору параметров, как его в разных массивах. Используйте массив $options, чтобы указать свои параметры и массив $answers, чтобы сохранить свой ответ соответственно.

Я надеюсь, что это помогает

Смежные вопросы