你看看smarty教程好吗?这个问题有很清楚的说明。

解决方案 »

  1.   

    巢狀資料的呈現 
    樣版引擎裡最令人傷腦筋的大概就是巢狀資料的呈現吧,許多著名的樣版引擎都會特意強調這點,不過這對 Smarty 來說卻是小兒科。最常見到的巢狀資料,就算論譠程式中的討論主題區吧。假設要呈現的結果如下: 公告區 
      站務公告 
    文學專區 
      好書介紹 
      奇文共賞 
    電腦專區 
      硬體週邊 
      軟體討論 程式中我們先以靜態資料為例:test3.php: 
    <?php
        require "main.php";
        $forum = array(
            array("category_id" => 1, "category_name" => "公告區",
                "topic" => array(
                    array("topic_id" => 1, "topic_name" => "站務公告")
                )
            ),
            array("category_id" => 2, "category_name" => "文學專區",
                "topic" => array(
                    array("topic_id" => 2, "topic_name" => "好書介紹"),
                    array("topic_id" => 3, "topic_name" => "奇文共賞")
                )
            ),
            array("category_id" => 3, "category_name" => "電腦專區",
                "topic" => array(
                    array("topic_id" => 4, "topic_name" => "硬體週邊"),
                    array("topic_id" => 5, "topic_name" => "軟體討論")
                )
            )
        );
        $tpl->assign("forum", $forum);
        $tpl->display("test3.htm");
        ?> 
     樣版的寫法如下:templates/test3.htm: 
    <html>
    <head>
    <title>巢狀迴圈測試</title>
    </head>
    <body>
    <table width="200" border="0" align="center" cellpadding="3" cellspacing="0">
        <{section name=sec1 loop=$forum}>
        <tr>
            <td colspan="2"><{$forum[sec1].category_name}></td>
        </tr>
        <{section name=sec2 loop=$forum[sec1].topic}>
        <tr>
            <td width="25">&nbsp;</td>
            <td width="164"><{$forum[sec1].topic[sec2].topic_name}></td>
        </tr>
        <{/section}>
        <{/section}>
    </table>
    </body>
    </html>
     執行的結果就像筆者舉的例子一樣。因此呢,在程式中我們只要想辦法把所要重覆值一層一層的塞到陣列中,再利用 <{第一層陣列[迴圈1].第二層陣列[迴圈2].第三層陣列[迴圈3]. ... .陣列索引}> 這樣的方式來顯示每一個巢狀迴圈中的值。这是一篇台湾人写的,关于smarty基础中的一段,希望对你有帮助。如果需要全文,请发消息给我。
      

  2.   

    为什么不在程序页面一次性保存一个数组记录关联的专辑与歌曲,形如array[专辑名][]=歌曲名,这样smarty输出只须:
    {foreach item=album from=$array(程序传过来的二维数组) key=albumName}
    推荐专辑{$albumName}<br>
    {foreach item=songName from=$album}
    {$albumName} -- {$songName}<br>
    {/foreach}
    {/foreach}
      

  3.   

    如bingofei(bingo) 所举的例子,我搞定了。数组学的不好,见笑了