Smarty排序数组

时间:2010-08-11 08:13:28

标签: php smarty

我希望对Smarty输出的产品名称列表进行排序。这是当前的代码:

{foreach from=$products key=i item=product}
  <li>
      <a href="discuss.php?product={$product.uri}
      {if $filter_style}&amp;style={$filter_style}{/if}">{$product.name|capitalize}
      </a>
  </li>
{/foreach}

HTML输出:

<li>zzzzz</li>
<li>qqqqq</li>
<li>ccccc</li>
<li>aaaaa</li>  

如何分类A-Z?

2 个答案:

答案 0 :(得分:1)

如果要在模板内而不是在分配数组的PHP中执行此操作,可以为数组编写自定义修饰符,在foreach循环中对其进行排序。有关示例,请参阅this blog post

答案 1 :(得分:1)

嗯,这是可能的,但这不是完美的解决方案:

{php}
   sort($this->_tpl_vars['your_smarty_variable_name']);
{/php}
{foreach...

如果你想以聪明的方式做到这一点,那么编写一个聪明的插件会更容易(也更优雅)。

顺便说一句。不推荐使用smarty 3中的{php} {/ php}标签