@ishimskayamahorka14

Как вывести все fileld_name(число)?

Как сделать, чтобы информация из field_name(число) (см. print_r($ObjectField_name)) выводилась циклом?
На данный момент состоит проблема в том, чтобы создать цикл, который не имел бы привязки к цифрам в конце field_name0, field_name1 ... и совместить это с циклами внутри
Есть следующий код:
echo '<div class="quize-item">';

$field_name = $app->input->get('field_name' , [] , 'ARRAY');
$namer_ff = $app->input->get('namer_ff' , [] , 'ARRAY');

$ObjectField_name = $params->get('field_name');

$quest = $ObjectField_name->field_name0->quest;
$test_text = $ObjectField_name->field_name0->namer_ff;
$fieldValues = $ObjectField_name->field_name0->namer_ff;

// вопрос теста
$question_res = $ObjectField_name ->field_name0->quest;
echo $question_res;
// вопрос теста


// ответ теста
foreach ($fieldValues as $fieldValue) {

$list = trim($fieldValue->test_list);
$text = trim($fieldValue->test_text);
if ($list == 0) {
echo '<label><input type="checkbox">'.$text.'</label>';
}
if ($list == 1) {
echo '<label><input type="radio">'.$text.'</label>';
}
if ($list == 2) {
echo '<label><input type="text">'.$text.'</label>';
}
}
// ответ теста

echo '</div>';


Прошу обратить внимание, что проблема сотоит в том, что массив $ObjectField_name - ассоциативный, т.е имеет индексы в виде слов "field_name0", "field_name1". Ума не приложу, как совместить их вывод с выводом вложенных циклов.
Результат print_r($ObjectField_name) :

stdClass Object
(
    [field_name0] => stdClass Object
        (
            [quest] => Есть ли у Вас уже готовый сайт?
            [namer_ff] => stdClass Object
                (
                    [namer_ff0] => stdClass Object
                        (
                            [test_text] => Да, есть
                            [test_list] => 1
                        )

                    [namer_ff1] => stdClass Object
                        (
                            [test_text] => Нет, нету
                            [test_list] => 0
                        )

                )

        )

    [field_name1] => stdClass Object
        (
            [quest] => Какие базовые разделы необходимы на сайте?
            [namer_ff] => stdClass Object
                (
                    [namer_ff0] => stdClass Object
                        (
                            [test_text] => Контакты
                            [test_list] => 0
                        )

                )

        )

)
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 2
@dzhebrak
Что-то вроде этого:
foreach ($ObjectField_name as $k => $v) {

	printf("Вопрос теста: %s\n", $v->quest);

	foreach ($v->namer_ff as $kk => $vv) {
		printf("\tОтвет теста: %s\n", $vv->test_text);		
	}
}

$ObjectField_name у вас не ассоциативный массив, а экземпляр встроенного класса stdClass https://www.php.net/manual/ru/language.types.objec...
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
->{"field_name{$index}"}
или
$key = 'field_name' . $index;
->{$key}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы