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

How to remove double URL reference in double foreach in CodeIgniter

本文关键字:foreach URL 引用 删除 CodeIgniter      更新时间:2023-09-26

所以我一直在CodeIgniter中编写一个代码,它需要一个双foreach循环。然而,当我使用所提供的site_url()函数时,这会产生不希望的结果。我已经在配置文件中设置了它,这样它就可以正确使用,事实上它在整个网站上都可以使用。我遇到的主要问题是,由于它是一个双foreach循环,它生成了两次site_url。所以它将其显示为CCD_ 2。

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两次。如果你感到困惑,请告诉我。

这是一种只回显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; ?>