smarty的foreach问题

数组:Array([0]=>Array([newsid]=>3[newtitle]=>政治新闻[news]=>asdqwd[newstime]=>2009-06-25[i... 数组:Array( [0] => Array ( [newsid] => 3 [newtitle] => 政治新闻 [news] => asdqwd [newstime] => 2009-06-25 [id] => 2 [cid] => 46 ) [1] => Array ( [newsid] => 5 [newtitle] => 娱乐新闻 [news] => qwerzxvew [newstime] => 2009-06-25 [id] => 2 [cid] => 48 ) [2] => Array ( [newsid] => 4 [newtitle] => 体育新闻 [news] => cvbrt [newstime] => 2009-06-25 [id] => 2 [cid] => 52 ) [3] => [4] => )
index.tpl
<!-- 1 -->
<!--{foreach from=$items item="item" name="mainitem" key="k"}-->
<!--{assign var="i" value=$k%2+1}-->
<div class="db_centz_<!--{$i}--> fl">
<!-- dao -->
<div class="db_centz_<!--{$i}-->_1 fl more">
<p class="db_centz_<!--{$i}-->_1p fl"><!--{$item.cname}--></p>
<p class="db_centz_<!--{$i}-->_2p fr"><a href="#">more»</a></p>

</div>
<!-- dao -->
<div></div>

<!-- ul -->
<div class="db_centz_<!--{$i}-->_2 fl glk">
<!--{foreach from=$new item=newa}-->
<li><span>·</span><a href="#"><!--{$newa.newtitle}--></a></li>
<!--{/foreach}-->
</div>
<!-- ul -->
</div>
<!--{/foreach}-->
<!-- 1 -->
现有效果

我想问的是:我只想把标题为“政治新闻”放到新闻栏里,把“娱乐新闻”放到娱乐栏里,把“体育新闻”放到体育栏里!请问怎么写呢?
是的,我取出来的时候就是在变量里,这个是从一个自定义的函数里返回的...我现在不知道怎么把它再模板上输出出来...我想把数据库里的新闻分配到每个栏目里面...只输出一个可以做到了,全部的就出不来了!今天是第5天了,依然没有解决这个问题!
展开
 我来答
name_best
2009-07-07 · TA获得超过145个赞
知道答主
回答量:50
采纳率:0%
帮助的人:66.8万
展开全部

a.php

$items=array( array 

                          ( 'newsid' => 3, 'newtitle' => '政治新闻', 'news' => 'asdqwd', 'newstime' => '2009-06-25', 'id'=> 2, 'cid' => 46 

        ),

           array ( 'newsid' => 5, 'newtitle' => '娱乐新闻', 'news' => 'qwerzxvew', 'newstime' => '2009-06-25', 'id' => 2, 'cid' => 48

     ), 

    array ( 'newsid' => 4, 'newtitle' => '体育新闻', 'news' => 'cvbrt', 'newstime' => '2009-06-25', 'id' => 2, 'cid' => 52

     ), 

    '', 

    '' 

   );

$smarty->assign('item',$items);

$smarty->display('a.tpl');

a.tpl

<table border="1" bordercolor="#0000CC" cellpadding="0" cellspacing="0">

  <tr>

    <td>新闻   <a href="#">more</a></td>

    <td>娱乐  <a href="#">more</a></td>

  </tr>

  <tr>

 {section name=i loop=$item}

  {if $item[i].newtitle == '政治新闻'}

    <td>{$item[i].newtitle}<br /></td>

  {elseif $item[i].newtitle == '娱乐新闻'}

     <td>{$item[i].newtitle}<br /></td>

  {/if}

    {/section}

  </tr>

  <tr>

    <td>体育新闻    <a href="#">more</a></td>

    <td>游戏新闻    <a href="#">more</a></td>

  </tr>

  <tr>

 {section name=i loop=$item}

  {if $item[i].newtitle == '体育新闻'}

    <td>{$item[i].newtitle}<br /></td>

  {elseif $item[i].newtitle == '游戏新闻'}

     <td>{$item[i].newtitle}<br /></td>

  {/if}

    {/section}

  </tr>

</table>

1065227709
2009-06-30 · TA获得超过312个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:0
展开全部
其实很简单

可以将这个数组赋值给一个数组变量

$arr = Array( [0] => Array ( [newsid] => 3 [newtitle] => 政治新闻 [news] => asdqwd [newstime] => 2009-06-25 [id] => 2 [cid] => 46 ) [1] => Array ( [newsid] => 5 [newtitle] => 娱乐新闻 [news] => qwerzxvew [newstime] => 2009-06-25 [id] => 2 [cid] => 48 ) [2] => Array ( [newsid] => 4 [newtitle] => 体育新闻 [news] => cvbrt [newstime] => 2009-06-25 [id] => 2 [cid] => 52 ) [3] => [4] => )

然后将里面的相关的数据取出来
比如你现在要 政治新闻
在 $ms->assign("item",$arr[0]);这样生成!
其它的依然是这样就可以了!

----------补充----
你说的---> "我想把数据库里的新闻分配到每个栏目里面...只输出一个可以做到了,全部的就出不来了" 想表达什么意思?

既然你现在这个地方己经分好类别了,那新闻也就是相关类别的新闻了
比如,你现在有 政治新闻 那么在这个类别里面全部都是关于 政治新闻 的相关新闻了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友39d97531d
2009-06-28 · TA获得超过303个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:192万
展开全部
在 foreach 中加入 if 判断,可以参考如下程序段:
<{-- if $newsa.newtitle== "政治新闻" --}>
//执行相关操作
<{-- /if --}>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式