2011-06-13 62 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循环,但没有结果。 你能给我一个可以工作的Smarty代码吗?

回答

10

foreach总是为我工作。让asume,$smarty是你已经初始化和工作smarty 3实例,$arr是你的数组。

你需要的阵列分配在PHP给Smarty:

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

介意另一种方式o写作...检查您的Smarty版本是否正确。