Smarty RSORT | register_modifier

Здравствуйте.

Возникла проблема которую не получается решить.

Есть переменная $array это ассоциативный массив. Проблема в том что массив этот нужно сортировать в обратном порядке.

Пробовал сделать плагин:

function smarty_modificator_rsort($array){
    return rsort($array);
}
//$smarty->register_modifier( 'rsort', 'smarty_modificator_rsort' );
$modx->smarty->register_modifier( 'rsort', 'smarty_modificator_rsort' );

Но он убил сайт. Как сделать сортировку массива?

П.С. Этот массив не выгребает процессор это json-строка

Comments

rsort с ассоциативным массивом не работает, пробуйте arsort

Спасибо за подсказку, упустил я этот момент. Но проблема не в работе сортировки, а в том, как ее прикрутить правильно.

  1. return rsort($array) — вернет TRUE;

  2. модификатор в smarty можно добавить положив в core/components/modxsmarty/smarty_plugins файлик: modifier.arsort.php

<?php
function smarty_modifier_arsort($array) {
        arsort($array);
        return $array;
}
  1. получаем такое:
{$a=["d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"]}
{var_dump($a)}
//array(4) { ["d"]=> string(5) "lemon" ["a"]=> string(6) "orange" ["b"]=> string(6) "banana" ["c"]=> string(5) "apple" }
{var_dump($a|arsort)}
//array(4) { ["a"]=> string(6) "orange" ["d"]=> string(5) "lemon" ["b"]=> string(6) "banana" ["c"]=> string(5) "apple" }

кактотак…