magr0s 28 апреля 2015 1 5
Здравствуйте.
Возникла проблема которую не получается решить

есть переменная $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-строка
5 комментариев
a
als1984 28 апреля 2015г в 22:09 #
rsort с ассоциативным массивом не работает, пробуйте arsort
m
magr0s 28 апреля 2015г в 22:38 #
спасибо за подсказку упустил я этот момент.

но, проблема не в работе сортировки а в том как ее прикрутить правильно
a
als1984 28 апреля 2015г в 22:59 #
а что в логе modx?
o
oobrun 29 апреля 2015г в 10:06 #
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" }


кактотак…

m
magr0s 29 апреля 2015г в 11:22 #
спасибо круто
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.