PHP цикл foreach внутри цикла foreach для доступа к переменным - PullRequest
0 голосов
/ 24 апреля 2019

Я отредактировал свой вопрос. Я пытаюсь перебрать каждый массив и использовать его внутри одного цикла foreach, это возможно?

foreach ($exhibitor as $exhibitors)
{
    //Foreach loop of each variable we need
    foreach ($exhibitorsLoop as $i) {
        $names[] = $i['exhibitor']['exhname'];
        $logos[] = $i['exhibitor']['onlinelogo'];
        //Sponsorship level 2-11
        $packages[] = $i['exhibitor']['package'];
        $descriptions[] = $i['exhibitor']['description'];
        $websites[] = $i['exhibitor']['website'];
    }
}

Как я планирую его использовать

        <div>
            <img class="img-responsive" src="<?php $logo ?>" alt="">
        </div>
        <div class="col-sm-8">
            <h1 style="margin-top:0;"><?php echo $name; ?></h1>
            <h2><?php echo $website; ?></h2>
        </div>

Когда я печатаю значение, такое как print_r ($ logos), я получаю все значения. Когда я пишу цикл foreach, такой как

foreach ($names as $name) {
 echo $name;
}

Также возвращает значение. Но у меня возникли проблемы с тем, чтобы он правильно вернулся в блок HTML. Нужно ли писать цикл foreach для каждого массива (имена, логотипы, пакеты и т. Д.)?

Я пробовал несколько разных методов слияния массивов, но ничто не дает мне конечный результат, который я ищу. Я хотел бы, чтобы каждый экспонент проходил циклически и использовал каждое ключевое значение где-то в html.

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Ваш фрагмент кода здесь не имеет смысла:

    //sub loop foreach 
    foreach ($jsonLoop as $i) {

    //example data
    $data= $i['value']['subvalue'];

    }

Поскольку вы сбрасываете $data много раз, но в итоге эта переменная будет хранить только последнее значение.Вместо этого, я думаю, вам нужно просто:

    //example data
    $data[] = $jsonLoop;

И вместо вашей второй части:

<?php foreach ($item as $items)
    foreach ($jsonLoop as $i) : ?>

<div class="col-sm-12">
    testing: <?php echo $data ?>
</div>

<?php endforeach; ?>

Просто выведите собранные данные:

    print_r($data);

Есливам нужно отформатировать html, вы можете расширить его, но все, что вам нужно, теперь в вашем $data.

0 голосов
/ 24 апреля 2019

Вот как я это делаю, я думаю, что это работает для меня: Внутри второго цикла я просто получаю все

    foreach ($exhibitorsLoop as $i) {
      $data[] = $exhibitorsLoop;
    }

А потом в HTML я называю именно то, что мне нужно из массива

<table>
    <?php foreach ($data as $d) : ?>
      <tr>
        <td> <?php echo $d[0]['exhibitor']['exhname']; ?> </td>
        <td> <?php echo $d[0]['exhibitor']['onlinelogo']; ?> </td>
      </tr>
    <?php endforeach; ?>
</table>

Если это не самый чистый способ, дайте мне знать, но я думаю, что это то, что я преследую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...