Smarty и массив

#php #smarty

#php #умный

Вопрос:

Я хочу загрузить этот массив в 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-код, пожалуйста?

Ответ №1:

у меня всегда работал foreach. давайте предположим, $smarty это ваш уже инициализированный и работающий экземпляр smarty 3, а $arr это ваш массив.

вам нужно присвоить массив smarty в 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}
  

Ответ №3:

 {foreach from=$myArray item=foo}
    <li>{$foo}</li>
{/foreach}


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

Обратите внимание на другой способ написания… проверьте правильность вашей версии Smarty.