Печать подмассива в массиве в smarty (foreach) - PullRequest
1 голос
/ 29 мая 2011

Я пытаюсь распечатать подмассив в массиве с помощью умного движка шаблонов. Скажем, у меня есть структура массива, как это:

Array
    (
[0] => Array
    (
        [directory] => One Day As A Lion - 2011-03-01/
        [source_notes] => iRiver
        [recording_type] => Audience
        [type] => Audio
        [source_type] => MP3
        [fileList] => Array
            (
                [0] => 09 One Day As A Lion.mp3
                [1] => 01 Intro.mp3
                [2] => 05 Ocean View.mp3
                [3] => 04 Swashbuckler.mp3
                [4] => One Day As A Lion - 2011-03-01 - Prince Bandroom, Melbourne, Australia.jpg
                [5] => 10 Peart Plus.mp3
                [6] => 06 Rockers.mp3
                [7] => 03 Last Letter.mp3
                [8] => 07 Swampy.mp3
                [9] => 02 If You Fear Dying.mp3
                [10] => 08 Wild International.mp3
            )

    )

)

Как именно я получу массив, содержащий имена файлов, для печати в smarty? В настоящее время у меня есть цикл foreach в smarty, который выглядит следующим образом:

  {foreach $sources as $sourceInfo}
  {strip}       
    Recording Type: {$sourceInfo.type} : {$sourceInfo.recording_type}<br>
    Source : {$sourceInfo.source_notes}<br>     
  {/strip}
  {/foreach}

И я не уверен, как реализовать второй цикл foreach. У кого-нибудь есть предложения? Я немного запутался с документацией, так как кажется, что есть два метода вложенных циклов foreach, один из которых кажется устаревшим. Является ли цикл foreach лучшим способом сделать это, или есть другой рекомендуемый способ в smarty? Любая обратная связь будет высоко ценится. Спасибо!

1 Ответ

4 голосов
/ 29 мая 2011

Просто добавьте еще один foreach:

{foreach from=$sources item=sourceInfo}
  {strip}       
    Recording Type: {$sourceInfo.type} : {$sourceInfo.recording_type}<br>
    Source : {$sourceInfo.source_notes}<br>     
    Files: {foreach from=$sourceInfo.fileList item=file}{$file}, {foreachelse}<i>no files</i>{/foreach}
  {/strip}
{/foreach}
...