ColdFusion按键排序结构

时间:2017-09-04 16:25:43

标签: struct coldfusion

如何按键而不是值对coldfusion结构进行排序。

structSort(struct, "text", "asc")

它对值进行排序,但我想对键进行排序。

有谁知道怎么做?

由于

1 个答案:

答案 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密钥名称现在区分大小写!另请注意,转储结构将按字母顺序显示条目。但是,循环结构将产生正确的顺序。