Помогите вывести многомерный массив в smarty

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
417
Реакции
49
Есть массив вида:
Код:
Array
(
    [comment] => Array
        (
            [55] => Join our Site for free
            [56] => Search all over the site, visit Clubs and Events!!!
        )
 
    [status] => Array
        (
            [55] => 1
            [56] => 1
        )
 
    [sorter] => Array
        (
            [55] => 1
            [56] => 2
        )
 
    [file_type] => Array
        (
            [55] => p
            [56] => p
        )
 
    [file_path] => Array
        (
            [55] => /uploades/3.jpg
            [56] => /uploades/4.gif
        )
 
)

пробую:
Код:
{foreach from=$data key=myId item=i}
 
{$myId} ---> {$i}  <br /><br /><br />
 
{/foreach}

выводит -
HTML:
comment ---> Array
 
 
status ---> Array
 
 
sorter ---> Array
 
 
file_type ---> Array
 
 
file_path ---> Array
 
Ну, правильно, этож массив пробуй так

PHP:
{foreach from=$data key=myId item=i_arr}
 
{foreach from=$i_arr item=i}
{$myId} ---> {$i}  <br /><br /><br />
  {/foreach}
 
 
{/foreach}
 
И столкнулся с ещё одной проблемой, есть 2 массива - $site_tour и $site_tour_header, в $site_tour хранится абзац с текстом, в $site_tour_header заголовок к этому абзацу, мне нужно вывести эти массывы в теге <section>, причем в тэг <label> подставив заголовок, в тег <p> абзац с текстом. Написал такой код:

Код:
<section class="ac-container">
{foreach from=$site_tour item=i_arr name=foo}
{foreach from=$site_tour_header item=i_header name=fooheader}
<div>
                    <input id="ac-{$smarty.foreach.foo.iteration}" name="accordion-1" type="radio" {if $smarty.foreach.foo.first}checked{/if} />
                    <label for="ac-{$smarty.foreach.foo.iteration}">{$i_header}</label>
                    <article class="ac-small">
                        <p>{$i_arr}</p>
                    </article>
</div>
{/foreach}
{/foreach}
</section>

Он выводит мой код несколько раз подряд. Можно ли решить задачу, чтобы из двух разных массивов выводить данные в одну область кода в нормальном виде, чтобы при этом код не копировался многократно?
 
хм, как я понял у тебя в $site_tour массив и заголовками типо Заголовок1, Заголовок2, Заголовок3..
а в $site_tour_header Описание для Заголовок1 , Описание для Заголовок2, Описание для Заголовок3...
да?
если да то пробуй так

Код:
 <section class="ac-container">
{foreach from=$site_tour item=i_arr name=foo key=tour_i}
 
<div>
                    <input id="ac-{$smarty.foreach.foo.iteration}" name="accordion-1" type="radio" {if $smarty.foreach.foo.first}checked{/if} />
                    <label for="ac-{$smarty.foreach.foo.iteration}">{$site_tour_header[$tour_i]}</label>
                    <article class="ac-small">
                        <p>{$i_arr}</p>
                    </article>
</div>
 
{/foreach}
</section>

 
Назад
Сверху