parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 06.04.2014 03:26 / 06.04.2014 03:26

если получить данные в нужном порядке почему-то сложно/невозможно, вы всегда можете написать небольшой метод, который выводит хеш в порядке следования значений какого-нить поля. в простейшем случае как-то так:
@myforeach[hash;key_name;value_name;code;separator;sort_column;sort_direction][t]
$t[^hash._keys[]]
^if(def $sort_column){
	^t.sort($hash.[$t.key].$sort_column)[^if(def $sort_direction){$sort_direction}{asc}]
}
^t.menu{
	$caller.[$key_name][$t.key]
	$caller.[$value_name][$h.[$t.key]]
	$code
}[$separator]
вызов метода будет аналогичен вызову метода foreach, только для сортировки надо передать ещё и sort_key + sort_direction