2013-02-21 3 views
0

Итак, я работал над кодом в CodeIgniter, для которого требуется двойной цикл foreach. Это, однако, дает нежелательные результаты, когда я использую функцию site_url(), которая предоставляется. Я установил его в файле конфигурации, чтобы он использовался правильно, чтобы он работал по всему сайту. Основная проблема, с которой я сталкиваюсь, заключается в том, что это двойной цикл foreach, который генерирует site_url дважды. поэтому он отображает его как http://example.comhttp://example.com.Как удалить ссылку двойного URL в двойном foreach в CodeIgniter

Цикл Еогеасп записывается следующим образом:

<?php foreach($array1 as $key1): ?> 
     <?php foreach($array2 as $key2): ?> 
      <img src="<?= site_url() ?>" /> 
      // prints out "http://example.comhttp://example.com" in the img href 
     <?php endforeach; ?> 
    <?php endforeach; ?> 

Вопрос заключается в том, как я могу получить его так, что он отображает только http://example.com один раз и не генерировать второй. Я должен сделать это в двойном цикле foreach или скрипт не будет работать. Я пытаюсь выяснить, как это работает, чтобы не допустить повторения двух повторений site_url. Дайте мне знать, если вы в замешательстве.

+0

Он делает то, что он должен делать - есть много способов остановить его повторение несколько раз, но чтобы быть более полезным, лучше, если бы вы могли указать какой-то контекст, когда вы хотите прекратить эхо - после только раз? После выполнения определенного условия? и т. д. – BenOfTheNorth

+0

Я хочу, чтобы он распечатывал каждую итерацию цикла foreach. Я просто хочу, чтобы он не распечатывал его site_url во второй раз, когда он находится во втором цикле foreach. Это используется внутри ' ', поэтому я хочу, чтобы он смог распечатать все изображения, но только хотел, чтобы URL-адрес отображался один раз, а не дважды. – Elias

ответ

1

Это быстрый и грязный способ только эхо URL-Once:

<?php 

$has_been_echoed = false; 

?> 
<?php foreach($array1 as $key1): ?> 
    <?php foreach($array2 as $key2): ?> 
     <?php if($has_been_echoed == false){ echo site_url(); $has_been_echoed = true; } ?> 
    <?php endforeach; ?> 
<?php endforeach; ?> 

вторить SITE_URL() только один раз в течение каждого второго цикла, попробуйте это следующим образом:

<?php 

$has_been_echoed = false; 

?> 
<?php foreach($array1 as $key1): ?> 
    <?php foreach($array2 as $key2): ?> 
     <?php if($has_been_echoed == false){ echo site_url(); $has_been_echoed = true; } ?> 
    <?php 

    endforeach; 

    $has_been_echoed = false; 

    ?> 
<?php endforeach; ?> 
+0

см. Обновленный код, он используется для img src. Будет ли этот метод работать? - EDIT: мне нужно распечатать его для каждого изображения, но только один раз для каждого изображения src – Elias

+0

я бы попробовал его и посмотрел, если это то, что вам нужно, Мне сложно определить, что именно вы пытаетесь достичь. Это будет зависеть, хотя и правильно, но только когда-либо выйдет за пределы site_url(). – BenOfTheNorth

+0

Целью этого является достижение чего-то подобного снимка экрана. генерирует это двойной цикл foreach, а сломанные изображения находятся во втором цикле foreach. http://puu.sh/26kEB – Elias

Смежные вопросы