2016-05-13 127 views
2

我有一个国家列表,有时列表只包含一个国家,有时甚至更多。这是我的代码:使用php爆炸?

<?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; ?> 

现在的输出是:“德国,奥地利,瑞士”。

我想为每个国家创建一个链接,我该怎么做?

我希望你们能帮助我。

+0

您是否在寻找一个循环? – Chay22

+0

我不知道^^我的PHP不太好。 – fr3d

+0

你需要使用foreach循环来遍历国家 – Saurabh

回答

2

我假设你在$ this-> value内获得逗号分开的国家列表。

我们可以使用函数像爆炸到字符串分割成数组,然后通过阵列使用的foreach循环,并生成单独的链路

<?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; ?> 

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

+0

谢谢你,帮了我很多:) – fr3d

2

我认为$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; ?> 

如果字符串比你可以使用爆炸()函数,并得到国家的一个数组如:

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

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

2

为了达到这个目的,你需要用逗号检查和分解国家字符串,然后在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 
    } 
} 
?>