2011-06-13 5 views
2

이 배열을 Smarty에서 테이블로로드하려고합니다.Smarty 및 배열

배열 : 소스에서

Array 
(
    [0] => Array 
     (
      [name] => VS1 
      [price] => 350 
      [ram] => 256 
      [cpu] => 2267 
      [hdd] => 5 
      [traff] => 0 
      [os] => Linux 
      [country] => Russia 
     ) 

    [1] => Array 
     (
      [name] => VS2 
      [price] => 465 
      [ram] => 512 
      [cpu] => 2267 
      [hdd] => 5 
      [traff] => 0 
      [os] => Linux 
      [country] => Russia 
     ) 
) 

, 난이

<tr> 
        <td>VS1</td> 
        <td>350</td> 
        <td>256</td> 
        <td>2267</td> 
        <td>5</td> 
        <td>0</td> 
        <td>Linux</td> 
        <td>Russia</td> 
    </tr> 

    <tr> 
        <td>VS2</td> 
        <td>465</td> 
        <td>512</td> 
        <td>2267</td> 
        <td>5</td> 
        <td>0</td> 
        <td>Linux</td> 
        <td>Russia</td> 
    </tr> 

원하는이 가능합니까? foreach 사이클을 시도하지만 결과는 없습니다. 작업 스마티 코드를 알려 주실 수 있습니까?

답변

10

foreach는 항상 나를 위해 일했습니다. asume, $smarty이 이미 초기화되고 작동중인 smarty 3 인스턴스이고 $arr이 배열입니다.

당신은 PHP에서 유식하는 배열을 할당해야합니다 : 다음

$smarty->assign('arr', $arr); 

하면 템플릿의 foreach와 그것을 통해 루프 :이 트릭을 할해야

{foreach $arr as $item} 
    <tr> 
     <td>{$item.name}</td> 
     <td>{$item.price}</td> 
     <td>{$item.ram}</td> 
     .... 
    </tr> 
{/foreach} 
2

)

{foreach from=$myArr item="row"} 
    <tr> 
     {foreach from=$row item="col"} 
      <td>{$col}</td> 
     {/foreach} 
    </tr> 
{/foreach} 
1
{foreach from=$myArray item=foo} 
    <li>{$foo}</li> 
{/foreach} 


{foreach $arr as $item} 
{/foreach} 

f 쓰는 중 ... Smarty 버전이 올바른지 확인하십시오.