2010-08-01 24 views
5

J'utilise {foreach} dans les Smarty comme celui-ciOrganiser la liste en reverse_array dans les {foreach}

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

Actuellement je reçois des réponses disposées comme ...

ancien -> Vieux -> nouveau -> récent

Je veux les arranger dans cet ordre

plus récent -> nouveau -> Vieux -> ancien

Comment y parvenir?

Merci

Résolu

Merci à ts pour cette

from=$replies|@array_reverse 

& nécessaire après le 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: */ 

?> 

Répondre

26

Cela permettra de résoudre le problème:

from=$replies|@array_reverse 
2

Découvrez array_reverse();)

sinon, vous pouvez simplement mettre des données sur un nouveau tableau (ou quelle que soit la structure que vous utilisez) avec foreach et array_pop() alors vous avez dans l'autre sens;) pile vs file d'attente

+0

mon php est codé ne peut donc pas faire de modifications à l'aide tableau inverse .. – MANnDAaR

+0

option Mon seccond probablement le meilleur pour vous, alors;) d'abord utiliser un foreach et mettre les éléments dans une nouvelle structure suite à une LIFO puis utilisez une nouvelle foreach et juste l'imprimer (ou l'utiliser, ou peu importe: P);) – Saikios

0

Si vos données provient d'une base de données il suffit d'utiliser une clause ORDER BY au lieu d'un pirater yo votre modèle.

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