如何在CodeIgniter中删除双foreach中的双URL引用

时间:2013-02-21 23:56:38

标签: php javascript jquery codeigniter foreach

所以我一直在编写CodeIgniter中的代码,这需要一个双foreach循环。但是,当我使用提供的site_url()函数时,这会产生不希望的结果。我已经在配置文件中进行了设置,以便正确使用它,实际上它可以在整个站点上运行。我遇到的主要问题是因为它是一个双foreach循环,所以它生成了两次site_url。所以它显示为http://example.comhttp://example.com

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一次而不生成第二个。我必须在双foreach循环中执行此操作,否则脚本将无法正常工作。我正试图弄清楚这项工作,以防止它两次回复site_url。如果你感到困惑,请告诉我。

1 个答案:

答案 0 :(得分: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; ?>

要在每个 second 循环中回显一次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; ?>