0

所以我一直在编写 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两次。如果您感到困惑,请告诉我。

4

1 回答 1

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; ?>
于 2013-02-22T00:09:31.477 回答