我声明的变量是一串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}
行,看起来它应该可以工作。
不确定我错过了什么
好的,
我不确定为什么这有效,原始代码不起作用,但这是对任何尝试这样的事情的人有效的方法。
我去掉了是和否,用 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 中。 如果没有,它只是显示(稍后包装在div 中(。
我还在第二个 foreach 语句的 key[0] 部分上运行 if 语句。
我想自学编码的危险,有时只是反复试验,但我总是喜欢找出我做错了什么,而这次并非如此。
我不确定为什么 0 和 1 比"不"和"是"效果更好,所以如果有人能回答最初的问题,那就太好了。