一个聪明的嵌套foreach循环的问题

时间:2014-12-18 17:27:36

标签: php smarty

我所说的变量是一串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 :(得分: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;所以,如果有人能够回答那个很棒的原始问题。