我所说的变量是一串HTML代码。我试图爆炸"换行"然后在" |"上爆炸结果。 这是我正在使用的代码
{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 :(得分:0)
好的我不知道为什么会这样,而原始代码却没有,但是这里有什么适合尝试这样的人。
我拿出了是和否,并将其替换为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中的&#34; |&#34;如果它有一个然后它爆炸并包裹在适当的div中。如果不是它只是显示(稍后将被包裹在div中)。
我还在第二个foreach语句中的key [0]部分运行if语句。
我猜想自学编码的危险,有时它只是试错,但我总是想知道我做错了什么,这次不是这样。
我不确定为什么0和1的效果更好然后#34; no&#34;和&#34;是&#34;所以,如果有人能够回答那个很棒的原始问题。