我在PHP: Limit foreach() statement?上找到了这篇文章,它谈到了我想做的事情,但我不确定如何编辑我的代码,或者把它放在哪里。谁能告诉我该把代码放在哪里/如何编辑它使其只显示X个数组?
{~* Get Ads *~}
{~$ads2=array()~}
{~foreach $ads as $data~}
{~capture append="ads2"~}
{~if $data.code~}
<div>{~$data.code|decode~}</div><br />
{~else~}
<div><a rel="nofollow" href="{~$conf.path~}side/sideClick.php?spid={~$data.id~}" target="_blank">{~if $data.url~}<img src="{~$data.url~}" border="0" alt="{~$data.title~}" {~if $config->get('sideForce')~} width="120" height="60"{~/if~}>{~else~}{~$data.title~}{~/if~}</a></div>
{~/if~}
{~/capture~}
{~/foreach~}
{~* Advertise Here *~}
{~if !$config->get('sideNoFill') || $config->get('sideNoFill')=='2'~}
{~* Advertising Spots *~}
{~if $adsRows>=5 || $config->get('sideNoFill')=='2'~}
{~$rows=1~}
{~else~}
{~$rows=5-$adsRows~}
{~/if~}
{~* Advertising Text *~}
{~if $config->get('sideAds')=='image'~}
{~$adText="banner"~}
{~elseif $config->get('sideAds')=='text'~}
{~$adText="text link"~}
{~else~}
{~$adText="banner or text link"~}
{~/if~}
{~* Loop *~}
{~section loop=$rows name="sidePanel"~}
{~capture append="ads2"~}
<div><a href="{~$conf.path~}side/index.php">Your 120x60 {~$adText~} here, <br>As Low As 8 Cents Per Day!</a></div>
{~/capture~}
{~/section~}
{~/if~}
{~* Horizontal Ads *~}
{~if $horizontal>0~}
{~if count($ads2)~}
<table cellpadding="4" cellspacing="0" style="border:0px;width:100%;table-layout:fixed">
{~$i=1~}
{~foreach $ads2 as $data~}
{~if $i==1~}
<tr valign="top">
{~/if~}
<td>{~$data~}</td>
{~if $i==$horizontal~}
{~$i=1~}
</tr>
{~elseif $data@last~}
<td colspan="{~$horizontal-$i~}"></td>
</tr>
{~else~}
{~$i=$i+1~}
{~/if~}
{~if (++$i == 5) break;~}{~/if~}
{~/foreach~}
</table>
{~/if~}
{~* Vertical Ads *~}
{~else~}
{~foreach $ads2 as $data~}
<div>{~$data~}</div>
{~if !$data@last~}<br />{~/if~}
{~/foreach~}
{~/if~}我试着摆弄它,找出把它放在哪里,但我就是一直收到错误。
我使用的是垂直广告版本。(这里显示了一个在另一个的顶部。)
我想限制正在展示的广告数量,因为它现在显示所有它们,所有的时间,每次都以随机顺序出现。我希望它是相同的,除了只显示被拉出的前X个数,而忘记其余的告诉下一个加载。因为它们是以随机顺序出现的,所以它们都会显示出来,只是不是同时显示。
发布于 2013-02-04 18:54:17
1)您正在编辑Smarty模板代码,而不是PHP代码。这就是你链接的代码不起作用的原因。尽管Smarty试图与PHP非常相似,但它并不相同。
2)您可以使用{break}命令跳出循环。
{foreach $ads2 as $data}
{if $data@index >= 2}
{break}
{/if}
{/foreach}3)请将代码提交给http://thedailywtf.com/?
https://stackoverflow.com/questions/14578370
复制相似问题