2013-02-21 58 views
0

因此,我一直在研究CodeIgniter中的代碼,該代碼需要雙重foreach循環。但是,當我使用提供的site_url()函數時,這會產生不希望的結果。我已經在配置文件中設置它,以便正確使用它,實際上它可以在整個站點上運行。我所遇到的主要問題是它是一個雙foreach循環,它生成了兩次site_url。所以它顯示爲http://example.comhttp://example.com如何刪除CodeIgniter中的double foreach中的雙重URL引用

foreach循環寫入如下:

<?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一次,並不會產生第二個。我必須在double foreach循環中執行此操作,否則腳本將無法工作。我試圖找出一個解決這個問題的方法,以防止兩次回顯site_url。讓我知道你是否感到困惑。

+0

它正在做它應該做的事情 - 有很多方法可以阻止它不止一次地回聲,但是更有幫助的是,如果你能提供一些關於何時停止回聲的內容 - 在就一次?滿足特定條件後?等 – BenOfTheNorth 2013-02-22 00:02:18

+0

我希望它打印出每個foreach循環的迭代。我只是想阻止它在第二個foreach循環內第二次打印出他的site_url。這是在' Elias 2013-02-22 00:05:18

回答

1

這是一個快速和骯髒的方式只能隨聲附和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; ?> 
<?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

看到更新後的代碼,它用於 - 編輯:我需要它打印出來的每個圖像,但只有一次爲每個圖像src的 – Elias 2013-02-22 00:13:52

+0

我建議嘗試一下,看看它是什麼,你在之後,我很難確定你想要達到什麼目的,雖然能夠正常循環,但只能迴應一次site_url()。 – BenOfTheNorth 2013-02-22 00:16:54

+0

這樣做的目標是實現類似於此截圖的代碼。生成它是一個雙foreach循環和破碎的圖像是在第二個foreach循環。http://puu.sh/26kEB – Elias 2013-02-22 00:24:29

相關問題