如何单独回显foreach

时间:2018-12-17 05:14:31

标签: php

当前,以下代码显示$ ids数组...

我如何仅回显1个ID? 我想以不同的方式而不是一次全部地回显每个id。 现在,它的回声同时是所有4个ID。 我希望单独回应他们 其工作方式与在$ ids中提及的所有会徽图像相呼应。 我希望他们单独回声而不是通过foreach 我希望它能回声类似

会徽($ guild-> guild_id of $ ids = 1);?>

会徽($ guild-> guild_id of $ ids = 2);?> 国徽($ guild-> guild_id of $ ids = 3);?> 等等...

下面是代码

    <?php 
    $castleNames = Flux::config('CastleNames')->toArray();
    $ids = "1,2,3,4";
    $sql  = "SELECT castles.castle_id, castles.guild_id, guild.name AS guild_name, guild.emblem_len FROM {$server->charMapDatabase}.guild_castle AS castles ";
    $sql .= "LEFT JOIN guild ON guild.guild_id = castles.guild_id ";
    $sql .= "WHERE castles.castle_id IN ($ids)";
    $sql .= "ORDER BY castles.castle_id ASC";
    $sth  = $server->connection->getStatement($sql);
    $sth->execute(array_keys($castleNames));
    $castles = $sth->fetchAll();
    ?>
    <?php if ($castles): ?>
    <?php foreach ($castles as $guild): ?>
        <div class="flag">
            <img width="24" src="<?php echo $this->emblem($guild->guild_id) ?>">
        </div>
    <?php endforeach ?>
    <?php endif ?>

预先感谢 请注意,我对phpmysql具有非常非常的基础知识,非常初学者阶段

1 个答案:

答案 0 :(得分:-1)

更改代码以包含一个foreach循环。

<?php if ($castles): ?>
    <?php foreach ($castles as $guild): ?>
        <?php foreach ($guild->guild_id as $id): ?>
            <div class="flag">
                <img width="24" src="<?php echo $this->emblem($id) ?>">
            </div>
        <?php endforeach ?>
    <?php endforeach ?>
<?php endif ?>