如何按键而不是值对coldfusion结构进行排序。
structSort(struct, "text", "asc")
它对值进行排序,但我想对键进行排序。
有谁知道怎么做?
由于
答案 0 :(得分:6)
如果您使用的是CF2016,则可以使用structNew("ordered")
创建一个保持其插入顺序的结构。
orderedStruct = structNew("ordered");
structKeys = structKeyArray(struct);
arraySort(structKeys, "text", "asc");
for (key in structKeys) {
orderedStruct[key] = struct[key];
}
writeDump(orderedStruct);
在旧版本的CF上,您必须依赖Java的LinkedHashMap。
orderedStruct = createObject("java", "java.util.LinkedHashMap").init();
但要注意 orderedStruct
密钥名称现在区分大小写!另请注意,转储结构将按字母顺序显示条目。但是,循环结构将产生正确的顺序。