in reply to Re: Sort a hash of hashes by value in template toolkit
in thread Sort a hash of hashes by value in template toolkit

Gave up on doing it in template toolkit, solved the issue by having a perl method in the handler that returns a sorted array of arrays which can then be easily looped in the .tt file.

An ugly solution, but it works.

  • Comment on Re^2: Sort a hash of hashes by value in template toolkit

Replies are listed 'Best First'.
Re^3: Sort a hash of hashes by value in template toolkit
by szodjo (Initiate) on Feb 28, 2008 at 20:03 UTC
    I came across this issue as well. I was passing a hash of hashes to TT and used this method to sort it.
    Sample Hash:
    %Orders = {}; $Orders{1}{NAME} = 'Bill'; $Orders{1}{STATUS} = 'Complete'; $Orders{2}{NAME} = 'John'; $Orders{3}{STATUS} = 'Pending';

    Sort the hash by key value (orderid) descending and output data from the nested hashes:

    <table> <tr> <th>Order ID</th> <th>Name</th> <th>Status</th> </tr> [% sortedKEYS = Orders.nsort %] [% FOREACH skey IN sortedKEYS %] <tr> <td>[% skey %]</td> <td>[% Orders.$skey.NAME %]</td> <td>[% Orders.$skey.STATUS %]</td> </tr> [% END %] </table>