Foreach in foreach — тут ведь есть подводный камень?

Доброй ночи! На странице в админ панели к посту можно прикрепить некоторое количество галерей. В базе есть таблица с всеми галереями и таблица в которой указано какие галереи куда прикреплены. Выглядит это вот так, но это только если прикрепленна 1 галерея.
da73a935d1fe469e9d0db94fb4ff1937.PNG
А если прикрепленно более 2 то в итоге получаем следующий результат
82d3a5e7516041799b8106c092a8828a.PNG

Почему цикл ведет себя именно так, не очень приятно не понимать, что происходит в твоем коде. Спасибо за советы!

<?php foreach ( $selected as $select ): ?>
<option selected value="{{ $select['id'] }}">{{ $select['title'] }}</option>

<?php foreach ( $gallery as $item ):
if( $select == $item ):
    continue;
else: ?>
    <option value="{{ $item['id'] }}">{{ $item['title'] }}</option>
<?php endif;
endforeach;
endforeach; ?>
  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
Мне кажется, вам просто поспать надо пойти и на свежую голову подумать, что именно вы хотите от кода. Потому что даже этого момента нет в вашем вопросе. А после этого уже думать, как реализовать желаемое. Заодно может if (==) continue else замените на if (!=)

А вообще камней нет. Вы проходите по массиву, всегда выводите пункт как выделенный, а потом в if выводите его же еще раз иногда.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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