Печать массива, циклически.

igorianru

Новичок
Здравствуйте форумчане, такая задача:

есть одномерный массив $arr его содержимое:

$arr= Array ( [que0] => вопрос 0[resp0_1] => ответ 0_1 [value0_1] => значение 0_1 [resp0_2] => ответ 0_2 [value0_2] => значение 0_2 [que1] => вопрос [resp1_1] =>ответ 1_1 [value1_1] => значение 1_1)


нужно распечатать циклически, должно получиться так:


print$arr['que0'];

<input name="" type="radio" value="print $arr['value0_1']" />print $arr['resp0_1'];
<input name="" type="radio" value="print $arr['value0_2']" />print $arr['resp0_2'];
echo $arr['que1'];

<input name="" type="radio" value="print $arr['value1_1']" />print $arr['resp1_1'];


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

lagoff

Новичок
Решение:
1) Изменить структуру существующего массива на нормальную многомерную. Например такую:
PHP:
$polls = array(
    '0' => array(
        'question' => 'Вопрос',
        'answers' => array(
            'answer_value_1' => 'Ответ №1',
            'answer_value_2' => 'Ответ №2'
        )
    )
)
2) Распечатать.
 

igorianru

Новичок
lagoff можете привести пример как распечатать такой массив и в той форме как я выше пример привёл, потому что у меня вся загвоста не в построении а в распечатке массива.?

PHP:
$polls = array(
    '0' => array(
        'question' => 'Вопрос',
        'answers' => array(
            'answer_value_1' => 'Ответ №1',
            'value_1' => 'Значение1',
            'answer_value_2' => 'Ответ №2'
            'value_2' => 'Значение2'
        )
    )
   '1' => array(
        'question' => 'Вопрос1',
        'answers' => array(
            'answer_value_3' => 'Ответ №3',
            'value_3' => 'Значение3',
            'answer_value_4' => 'Ответ №4'
            'value_4' => 'Значение'
        )
    )
)
 

lagoff

Новичок
Лучше привести суб-массив answers к виду
PHP:
array(
    'Значение1'  => 'Ответ1',
    'Значение2'  => 'Ответ2'
)
ну и распечатать
PHP:
foreach($answers as $value => $text) {
    echo '<input name="" type="radio" value="'. $value .'" />' . $text
}
 

lagoff

Новичок
А можно и не приводить, если будет соблюдено условие, что вид массива будет именно "ответ-значение-ответ-значение", тогда
PHP:
foreach(array_chunk($answers, 2) as $value_text_pair) {
    echo '<input name="" type="radio" value="'. $value_text_pair[0] .'" />' . $value_text_pair[1]
}
Но вариант выше - надежней.
 

igorianru

Новичок
Спасибо большое! суть понял, немного почитав литературу и всё получилось!
 
Сверху