有没有聪明的方法可以使用smarty tpl-engine在列表中发布随机数(例如1-4)?
标准清单排序1-5:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
这是我的解决方案(PHP):
<ul>
{foreach from=randomNumbers}
<li>{smarty.randomNumbers}</li>
{/foreach}
</ul>
修改后的清单排序1-5(随机):
<ul>
<li>3</li>
<li>2</li>
<li>5</li>
<li>1</li>
<li>4</li>
</ul>
我真的测试了几乎所有的东西,但我只需要一个聪明的&amp;对此的小解决方案: - )
亲切的问候, 海因里希
答案 0 :(得分:1)
你可以在smarty中使用php中的rand()函数。将参数作为运行循环的次数传递,您应该完成。
答案 1 :(得分:1)
<击> 你可以做一些非常脏的事情:
<ul>
{foreach from=0|range:4|@array_rand:5 item=i}
{assign var=i value=$i+1}
<li>{$i}</li>
{/foreach}
</ul>
击> <击> 撞击> 的修改
如你所说array_rand()
不再洗牌结果。您不能轻易地使用shuffle()
,因为它不会返回洗牌数组 - 您可以执行以下操作:
//somewhere in an included PHP file
function shuffle_array($array){
shuffle($array);
return $array;
}
{*template *}
<ul>
{foreach from=1|range:5|@shuffle_array item=i}
<li>{$i}</li>
{/foreach}
</ul>
答案 2 :(得分:0)
|shuffle
or
shuffle();
到tom的智能代码,
但没有成功&gt; _&lt;
...