0

だから私はCodeIgniterのコードに取り組んできました。これには二重のforeachループが必要です。site_url()ただし、提供されている関数を使用すると、これは望ましくない結果をもたらします。正しく使用されるように設定ファイルで設定しましたが、実際にはサイト全体で機能します。私が抱えている主な問題は、それが二重のforeachループであるため、site_urlを2回生成していることです。したがって、として表示され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; ?>

問題は、1回だけ表示され、2番目の表示を生成しないようにするにはどうすればよいかということですhttp://example.com。これは、double foreachループ内で実行する必要があります。そうしないと、スクリプトが機能しません。これを回避して、site_url2回エコーアウトしないようにするための回避策を見つけようとしています。混乱している場合はお知らせください。

4

1 に答える 1

1

これは、URLを1回だけエコーするための迅速で汚い方法です。

<?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()を1回だけエコーするには、次の方法で試してください。

<?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 に答える