2014-12-31 2 views
0

그래서 Smarty2를 사용하고 있으며 Smarty를 알지 못합니다. 내가가는 동안 그것을 배우려고 노력. 나는 배열이 더 이상 (VAR 덤프에서) 다음과 같이 구성되어이 배열을smarty에서 중첩 배열에 어떻게 액세스합니까?

array(59) { 
    [0]=> array(4) { 
     [0]=> string(10) "CCX 4PLY" 
     [1]=> string(3) "SYP" 
     [2]=> string(4) "4X8 " 
     [3]=> array(6) { 
      [0]=> string(0) "" 
      [1]=> string(0) "" 
      [2]=> string(0) "" 
      [3]=> int(761) 
      [4]=> string(0) "" 
      [5]=> string(0) "" 
     } 
    } 
    [1]=> array(4) { 
     [0]=> string(5) " CCX" 
     [1]=> string(3) "SYP" 
     [2]=> string(4) "4X8 " 
     [3]=> array(6) { 
      [0]=> string(0) "" 
      [1]=> string(0) "" 
      [2]=> string(0) "" 
      [3]=> string(0) "" 
      [4]=> int(823) 
      [5]=> int(937) 
     } 
    } 
    ... 
} 

가지고 있지만, 그건 당신에게 내가가는 것을의 아이디어를 제공하기에 충분합니다. 보시다시피 각 배열 내부에는 항목 가격을 제공하는 다른 배열이 있습니다. 때로는 가격이 없지만 괜찮습니다. 그러한 경우에는해서는 안됩니다. 그래서 내가해야 할 일은 가격이 특정 항목에 해당 할 때 가격을 표시하는 것입니다. 현명한 코드가 있습니다. 어레

<table> 
{foreach name=outer item=row from=$indLine} 
<tr> 
{foreach key=key item=item from=$row} 
<td>{$item}</td> 
{foreach key=price item=price from=$row} 
<td>{$indLine[4]}</td> 
{/foreach} 
{/foreach} 
</tr> 
{/foreach} 

내 유식 변수 indLine이다. indLine [4]은 가격에 액세스하려고하는 곳입니다. 행 변경 등을 시도했습니다. 아무것도 작동하지 않습니다. 브라우저에 표시되는 것은 다음과 같습니다.

CCX 4PLY 어레이 배열 어레이 배열 SYP 어레이 배열 어레이 배열 4X8 배열 어레이 배열 어레이 배열 어레이 배열 어레이 배열 CCX 어레이 배열 어레이 배열 SYP 어레이 배열 어레이 배열 4X8 배열 어레이 배열 어레이 배열 어레이 배열 어레이 배열 RSH 4-PLY 어레이 어레이 어레이 어레이 SYP 어레이 어레이 어레이 어레이 4X8 어레이 어레이 어레이 어레이 어레이 어레이 어레이 어레이 어레이 RSH 어레이 어레이 어레이 SYP 어레이 어레이 어레이 어레이 4X8 어레이 어레이 어레이 어레이 어레이 어레이 어레이 어레이 어레이 S/F 4-PLY 어레이 어레이 어레이 어레이 SYP 어레이 어레이 어레이 어레이 4X8 어레이 어레이 어레이 어레이 어레이 어레이 어레이 어레이 어레이 S/F SE 어레이 어레이 어레이 SYP 어레이 어레이 어레이 어레이 4X8 Ar 선 배열 배열 배열 배열 배열 배열 배열 배열

CCX 4PLY 0 SYP 0 4X8 0 Array 0 
CCX 0 SYP 0 4X8 0 Array 0 
RSH 4-PLY 0 SYP 0 4X8 0 Array 0 
RSH 0 SYP 0 4X8 0 Array 0 
S/F 4-PLY 0 SYP 0 4X8 0 Array 0 
S/F SE 0 SYP 0 4X8 0 Array 0 
RSH 3-PLY 0 SYP 0 4X8 0 Array 0 
RSH 4-PLY 0 SYP 0 4X8 0 Array 0 
RSH 0 SYP 0 4X8 0 Array 0 
S/F 4-PLY 0 SYP 0 4X8 0 Array 0 
+0

원하는 출력을 표시하십시오. – J0e3gan

+0

그것은 # 2와 비슷한 것이 될 필요가 있습니다. S4S \t 2X6 SYP $ 679 \t $ 674 $ 669 \t $ 689 – trouble706

답변

1

나는 각각의 값은/배열이 무엇을 나타내는 지 확실하지 않다 당신이 기대하는 출력의 종류 그러나이 시도 : 당신이

<table> 
{foreach name=outer item=row from=$indLine} 
<tr> 
    {foreach key=key item=item from=$row} 
    {if is_array($item)} 
    {foreach key=key item=price from=$item} 
    <td>{$price}</td> 
    {/foreach} 
    {else} 
    <td>{$item}</td> 
    {/endif} 
    {/foreach} 
</tr> 
{/foreach} 

foreach 루프에서는 item으로 정의 된 변수를 사용합니다. PHP에서 assocc 배열을 작성한 다음 배열 키를 사용하여 배열을 통해 맹목적으로 반복하지 않고 원하는 데이터를 인쇄하십시오.

+0

이렇게하면 디스플레이가 브라우저로 다소 바뀌었지만 여전히 필요한 것을 수행하지 못했습니다. 배열 요소를 보여주는 것이 아니라 여전히 "Array"를 표시합니다. – trouble706

+0

그동안 답변을 편집했습니다. 인쇄중인 항목이 배열인지 확인한 다음 배열을 다시 반복해야합니다. – pajaja

+0

그건 한 가지 예외가 있습니다. 이 줄 (foreach key = price item = price from price = $ item)에서 key = price를 key = key로 변경해야했습니다. 나를 올바른 방향으로 가리켜 주셔서 감사합니다. 나는 당신의 답을 가장 정확한 것으로 표시하고있다. – trouble706

관련 문제