2016-05-13 126 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 
    } 
} 
?>