2014-12-18 3 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

확인을 잃었 무엇인지 잘 모르겠습니다. "|"

나는 예 '를 꺼내없이 1로 대체하고 문을 위해 $ 난을 변수를 검색 할 경우

{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} 

0 나는 추가 그것이 하나 있다면 그것은 폭발하고 적절한 div에 싸서. 그렇지 않은 경우 그냥 표시됩니다 (나중에 div에 래핑 됨).

또한 두 번째 foreach 문에서 key [0] 섹션에 if 문을 실행합니다.

자기 가르침의 위험이 있습니다. 언젠가는 시행 착오 일 때가 있습니다.하지만 언제나 내가 잘못한 것을 발견하고 싶습니다. 이번에는 그렇지 않습니다.

0과 1이 왜 "아니오"와 "예"가 더 좋은지 잘 모릅니다. 그렇다면 누구나 원래 질문에 답할 수 있다면 좋을 것입니다.