两次assign 就是在第二次foreach之前再assign一个变量 然后 freach的时候 from这个变量

解决方案 »

  1.   

    举个具体例子:
    <?php
    $category = array(array("ID"=>1,"name"=>"娱乐新闻"),
                      array("ID"=>2,"name"=>"国际新闻"),
                      array("ID"=>3,"name"=>"财经新闻")
                     );
    foreach($category as $cat)
    {
      $news[$cat['ID']][] = array(array("title"=>$cat['name']."1"),
                                  array("title"=>$cat['name']."2"));
    }
    ?>{foreach from=$category item=c}
      {assign var="CID" value=$c.ID}
      {$CID}:<br>
      {foreach from=$news.$CID item=n}  <!-- 问题在这行 -->
        {$n.title}<br/>
      {/foreach}
      <br><br>
    {/foreach}
    如果我希望的显示结果是这样,应该怎么修改?谢谢。结果如下:娱乐新闻
    娱乐新闻1
    娱乐新闻2国际新闻
    国际新闻1
    国际新闻2财经新闻
    财经新闻1
    财经新闻2
      

  2.   

    $smarty->assign("news",$news);
    $CID这个变量要在模板可用,必须也要赋值,类似上面的
    $smarty->assign("CID",$CID);
    如果$CID是整型在模板中要$news[$CID]这样写
      

  3.   

    你可以在程序页面print_r($news),看看$news数组什么结构,应该是个三维数组
    {$n.title}改成{$n.0.title}是不是有输出?如果有,你也肯定知道怎么改了。