28 апр. 2015 г., 19:03

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-строка
rsort с ассоциативным массивом не работает, пробуйте arsort
спасибо за подсказку упустил я этот момент.
но, проблема не в работе сортировки а в том как ее прикрутить правильно
а что в логе modx?
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; }
3) получаем такое:
{$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" }
кактотак…
спасибо круто

Добавить комментарий