2014-12-18 71 views
0

我說的變量是一串HTML代碼。我試圖在「換行符」上爆炸,然後在「|」上爆炸結果。 這裏是我使用問題與聰明的嵌套的foreach循環

{assign var="featuresdescarray" value="<br />"|explode:$product.featuresdesc} 
{foreach from=$featuresdescarray key=k item=i} 
    {assign var="featuresdescarrayexploded" value="|"|explode:$i} 
    {foreach from=$featuresdescarrayexploded key=key item=item} 
     {if $item eq "yes"} 
      yes-textreplaced 
     {elseif $item eq "no"} 
      no-textreplaced 
     {else} 
      {$item}<br /> 
     {/if} 
    {/foreach} 
{/foreach} 

所以通過嵌套的foreach拳頭時間,我希望文字被替換的代碼。之後,它似乎失敗了if,elseif,並且每次都使用else。

如果我拿出if語句並放入{$ key}:{$ item}
行,它看起來應該起作用。

不知道我很想念

回答

0

OK,我不知道爲什麼這個作品和原代碼沒有,但這裏是正在爲任何人試圖這樣的事情。

我拿出yes和no,並用1代替它,0

{assign var="featuresdescarray" value="<br />"|explode:$product.featuresdesc} 
    {foreach from=$featuresdescarray key=k item=i} 
     {if $i|strstr:"|"} 
      {assign var="featuresdescarrayexploded" value="|"|explode:$i} 
       {foreach from=$featuresdescarrayexploded key=key item=item} 
        {if $key eq 0 and $item eq 1} 
         <div class="productFeatureDescYes">{$featuresdescarrayexploded[1]}<br /></div> 
        {elseif $key eq 0 and $item eq 0} 
         <div class="productFeatureDescNo">{$featuresdescarrayexploded[1]}<br /></div> 
        {/if} 
       {/foreach} 
      {else} 
       {$i}<br /> 
      {/if} 
     {/foreach} 

我添加了一個if語句搜索$ I的一個 「|」如果它有一個,那麼它爆炸幷包裹在適當的分區。如果不是,它只是顯示(稍後將被包裝在一個div中)。

我也在第二個foreach語句的關鍵[0]部分運行if語句。

自學習編碼的危險我猜,有時候這只是反覆試驗,但我總是想知道我做錯了什麼,而這次不是這種情況。

我不知道爲什麼0和1的工作更好,那麼「不」和「是」,所以如果任何人都可以回答最好的問題。