使用 php 爆炸?

Working with php explode?

我有一个国家列表,有时该列表仅包含一个国家,有时则包含多个国家。这是我的代码:

<?php if($this->value): ?>
<a class="tag" href="{{env::url}}/business?land=<?php echo $this->value; ?>" title="<?php echo $this->value; ?>"><?php echo $this->value; ?></a>
<?php endif; ?>

现在的输出是:"Germany,Austria,Switzerland".

我想为每个国家/地区创建一个 link,我该怎么做?

希望大家帮帮我

我假设 $this->value 是一个数组,因此您可以使用 foreach 循环一个一个地获取国家/地区,如下所示:

<?php if($this->value): ?>
    <? $countries = $this->value; ?>
    <? foreach ($countries as $country): ?>
        <a class="tag" href="{{env::url}}/business?land=<?php echo $country; ?>" title="<?php echo $country; ?>"><?php echo $country; ?></a>
    <? endforeach; ?>
<? endif; ?>

如果它是字符串,那么您可以使用 explode() 函数并将国家/地区作为数组获取,例如:

<?php $countries = explode("," , $this->value); ?>

并将此 $countries 数组传递给 foreach 循环。

我假设您在 $this->value 中获取逗号分隔的国家/地区列表。

我们可以使用类似 explode 的函数将该字符串拆分为数组,然后使用 foreach 循环遍历数组并生成单个 link

<?php if($this->value): ?>
    <?php
        $array = explode( ',', $this->value );
    ?>
    <?php foreach($array as $value): ?>
        <a class="tag" href="{{env::url}}/business?land=<?php echo $value; ?>" title="<?php echo $value; ?>"><?php echo $value; ?></a> - 
    <?php endforeach; ?>
<?php endif; ?>

我希望这能回答你的问题。

为了实现这一点,您需要用逗号检查和分解国家/地区字符串,然后在 foreach 中循环它。

示例代码:

<?php
if ($this->value) {
    $countries = explode(",", $this->value);
    if (count(countries) > 1) {
        foreach ($countries as $country) {
            ?>
            <a class="tag" href="{{env::url}}/business?land=<?php echo $country; ?>" title="<?php echo $country; ?>"><?php echo $country; ?></a>
            <?php
        }
    } else {
        ?>
        <a class="tag" href="{{env::url}}/business?land=<?php echo $this->value; ?>" title="<?php echo $this->value; ?>"><?php echo $this->value; ?></a>
        <?php
    }
}
?>