2010-08-01 37 views
5

Tôi đang sử dụng {foreach} trong smarty như thế nàySắp xếp danh sách trong reverse_array trong {foreach}

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

Hiện nay tôi đang nhận được trả lời sắp xếp như ...

Cũ hơn -> Cũ -> New -> mới hơn

tôi muốn sắp xếp chúng theo thứ tự này

mới hơn -> New -> Cũ -> Cũ hơn

Làm thế nào để đạt được điều này?

Cảm ơn

Giải Quyết

Nhờ ts cho

from=$replies|@array_reverse 

& Yêu cầu này sau Plugin 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: */ 

?> 

Trả lời

26

này sẽ giải quyết vấn đề:

from=$replies|@array_reverse 
2

Check-out array_reverse();)

nếu không, bạn chỉ đơn giản là có thể đưa dữ liệu vào một mảng mới (hoặc bất kỳ cấu trúc bạn đang sử dụng) với foreach và array_pop() sau đó bạn có nó theo cách khác;) ngăn xếp vs đợi

+0

php của tôi được mã hóa Vì vậy, không thể thực hiện bất kỳ thay đổi sử dụng mảng ngược .. – MANnDAaR

+0

tùy chọn seccond My có lẽ là tốt nhất cho bạn rồi;) đầu tiên sử dụng một foreach và đưa các yếu tố trong một cấu trúc mới sau một LIFO sau đó sử dụng một foreach mới và chỉ in nó (hoặc sử dụng nó, hoặc bất cứ điều gì: P);) – Saikios

0

Nếu dữ liệu của bạn đến từ một cơ sở dữ liệu chỉ cần sử dụng một khoản ORDER BY thay vì một số hack trong yo mẫu ur.

SELECT ... FROM ... ORDER BY date DESC 
Các vấn đề liên quan