@VitaliyKaliuzhyn

Вывод элементов массива?

есть массив $items не известным количеством элементов

есть вот такой return в котором я для наглядности перечислил для 3 значений массива $items
return
            "<div class='form-group field-users-created_at required'>".
                Html::beginTag('label', $labelOptions) .
                $items[0] .
                Html::Tag('input','',$options).
                "<span></span>".
                Html::endTag('label').
            Html::beginTag('label', $labelOptions) .
            $items[1] .
            Html::Tag('input','',$options).
            "<span></span>".
            Html::endTag('label').
            Html::beginTag('label', $labelOptions) .
            $items[2] .
            Html::Tag('input','',$options).
            "<span></span>".
            Html::endTag('label').
            "<span class='help-block'></span></div>";


данный код возвращает вот такую вот разметку

<div class="form-group field-users-created_at required"><label class="mt-radio">Radio 1<input type="radio" name="test"><span></span></label><label class="mt-radio">Radio 2<input type="radio" name="test"><span></span></label><label class="mt-radio">Radio 3<input type="radio" name="test"><span></span></label><span class="help-block"></span></div>


Вопрос в том как мне без дублирования кода для каждого i-го элемента вывести

return
            "<div class='form-group field-users-created_at required'>".
                Html::beginTag('label', $labelOptions) .
                $items[i] .
                Html::Tag('input','',$options).
                "<span></span>".
                Html::endTag('label').
               "<span class='help-block'></span></div>
  • Вопрос задан
  • 228 просмотров
Решения вопроса 2
anton_lazarev
@anton_lazarev
$html = "<div class='form-group field-users-created_at required'>";

foreach ($items as $item) {

$html .= Html::beginTag('label', $labelOptions) .
                $item .
                Html::Tag('input','',$options).
                "<span></span>".
                Html::endTag('label');

}

$html .= "<span class='help-block'></span></div>";

return $html;


Хотя глаза, признаюсь, вытекли...
Ответ написан
@Multigame
Вообще любой цикл.
В теле функции создаете переменную, её заполняете циклом, далее уже в return передаете эту переменную.

$returnHtml =  "<div class='form-group field-users-created_at required'>";
for($i = 0; $i < count($items); $i++){
   $returnHtml .= Html::beginTag('label', $labelOptions).$items[$i].Html::Tag('input','',$options)."<span></span>".Html::endTag('label');
}
$returnHtml .= "<span class='help-block'></span></div>";
return $returnHtml;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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