在{foreach}内的reverse_array中排列列表

时间:2010-08-01 15:03:51

标签: php smarty

我正在使用{foreach}这样的聪明才智

{foreach key=num item=reply from=$replies}
//something goes here.
{/foreach}

目前我收到的答复如...

较旧 - >老 - >新 - >较新的

我想按此顺序排列

较新 - >新 - >老 - >旧版

如何实现这一目标?

感谢

解决

感谢ts

from=$replies|@array_reverse

&安培;需要使用smarty插件

modifier.reverse_array.php

<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */


/**
 * Smarty reverse_array modifier plugin
 *
 * Type:     modifier<br>
 * Name:     reverse_array<br>
 * Purpose:  reverse arrays
 * @author   Noel McGran 
 * @param array
 * @return array
 */
function smarty_modifier_reverse_array($array)
{
    return array_reverse($array);
}

/* vim: set expandtab: */

?>

3 个答案:

答案 0 :(得分:28)

这将解决问题:

from=$replies|@array_reverse

答案 1 :(得分:2)

查看array_reverse();)

如果没有,你可以简单地将数据放在一个新的数组(或者你正在使用的任何结构)上,使用foreach和array_pop(),然后你以另一种方式获得它;)stack vs queue

答案 2 :(得分:0)

如果您的数据来自数据库,只需使用ORDER BY子句而不是模板中的某些黑客。

SELECT ... FROM ... ORDER BY date DESC