Cheizer
@Cheizer

Как убрать ECHO из foreach цикла?

Подскажите пожалуйста, как упростить цикл в том плане, что я начинаю путаться с html вставками. А конкретно везде писать ECHO. Может убрать echo и просто html оставить, а в конце как то RETURNом это все сразу распечатать можно?

foreach($items as $value)
{
  $data = json_decode($value['tarif'], true);
  foreach ($data as $item) {
echo '<div style="order:'.$i.';" class="rowdesctop Rtable-cell '.$class.'">';
echo $item['title'];
echo '</div>';      
  }
}
  • Вопрос задан
  • 152 просмотра
Решения вопроса 3
@shevchenko__k
Помогаю новорожденным web программистам
foreach($items as $value)
{
  $data = json_decode($value['tarif'], true);
$html = '';
  foreach ($data as $item) {
$html .= '<div style="order:'.$i.';" class="rowdesctop Rtable-cell '.$class.'">';
$html .= $item['title'];
$html .= '</div>';      
  }
echo $html;
}
Ответ написан
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
<?php
foreach($items as $value) {
  $data = json_decode($value['tarif'], true);
  foreach ($data as $item) {
?>
  <div style="order:<?= $i =>" class="rowdesctop Rtable-cell <?= $class ?>">
    <?= $item['title'] ?>
  </div>      
<?php
  }
}
?>


<?php
//А тут капелька ФП :)

function list_item($i, $class, $item) {
  return "<div style=\"order:$i\" class=\"rowdesctop Rtable-cell $class\">$item[title]</div>"  
}
?>

<?= implode(array_map(
  function ($value) use ($i, $class) {
      return implode(array_map(
          function ($item) use ($i, $class) {
            return list_item($i, $class, $item);
          }
          json_decode($value['tarif'], true)
      ));
  },
  $items
))?>
Ответ написан
Daemon23RUS
@Daemon23RUS
foreach($items as $value)
{
    $data = json_decode($value['tarif'], true);
    foreach ($data as $item) { ?>
        <div style="order:<?=$i?>" class="rowdesctop Rtable-cell<?=$class?>">
<?=$item['title']?>
</div>
<?php
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@romaaa32
<?php foreach($items as $value):
    $data = json_decode($value['tarif'], true);
    foreach ($data as $item): ?>
        <div style="order:<?=$i?>" class="rowdesctop Rtable-cell <?=$class?>">
        <?=$item['title']?>
        </div>
    <?php endforeach; ?>
<?php endforeach; ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы