Struct 如何在ColdFusion中使用from对结构进行排序并循环使用函数

Struct 如何在ColdFusion中使用from对结构进行排序并循环使用函数,struct,coldfusion,Struct,Coldfusion,我希望使用struct生成两个字符串,但数据不是按升序排列的。除此之外,我还想使用from to like循环从1到50进行for循环,但我只知道使用数组进行for循环,不知道如何对结构进行for循环。有人能帮忙吗?我急于完成它。TQ。 我的代码如下 <cfprocessingdirective pageEncoding="utf-8" /> <cfset lang = structNew() /> <cfset lang.ch = structNew() />

我希望使用
struct
生成两个字符串,但数据不是按升序排列的。除此之外,我还想使用from to like循环从1到50进行for循环,但我只知道使用数组进行for循环,不知道如何对
结构进行for循环。有人能帮忙吗?我急于完成它。TQ。
我的代码如下

<cfprocessingdirective pageEncoding="utf-8" />
<cfset lang = structNew() />
<cfset lang.ch = structNew() />
<cfset lang.en = structNew() />
<cfset lang["ch"]["dealer1"] = "代理 1">
<cfset lang["ch"]["dealer2"] = "代理 2">
<cfset lang["ch"]["dealer3"] = "代理 3">
<cfset lang["ch"]["dealer4"] = "代理 4">
......
<cfset lang["en"]["dealer1"] = "Dealer 1">
<cfset lang["en"]["dealer2"] = "Dealer 2">
<cfset lang["en"]["dealer3"] = "Dealer 3">
<cfset lang["en"]["dealer4"] = "Dealer 4">
.....

......
.....

如果您使用的是最新版本的ColdFusion,ColdFusion 2016,您可以使用
structNew(“ordered”)

对于ColdFusion 11或更早版本

您可以使用Java的。但一个区别是LinkedHashMap区分大小写,因此在结构中定义结构时,必须使用括号表示法(即:
struct1[“struct2”]
)。值得注意的是,您可以像对待CFML结构一样对待它们,因为您可以对它们使用
structKeyExists()
等函数

<cfset LinkedHashMap = createObject("java", "java.util.LinkedHashMap") />

<cfset lang = LinkedHashMap.init() />
<cfset lang["ch"] = LinkedHashMap.init() />
<cfset lang["en"] = LinkedHashMap.init() />

<cfset lang["ch"]["dealer1"] = "代理 1">
<cfset lang["ch"]["dealer2"] = "代理 2">
<cfset lang["ch"]["dealer3"] = "代理 3">
<cfset lang["ch"]["dealer4"] = "代理 4">

<cfset lang["en"]["dealer1"] = "Dealer 1">
<cfset lang["en"]["dealer2"] = "Dealer 2">
<cfset lang["en"]["dealer3"] = "Dealer 3">
<cfset lang["en"]["dealer4"] = "Dealer 4">

<!--- Example to see structure --->
<cfdump var="#lang#">

您可以在trycf.com上测试上述示例->

如果您使用的是最新版本的ColdFusion,ColdFusion 2016,您可以使用
structNew(“ordered”)

对于ColdFusion 11或更早版本

您可以使用Java的。但一个区别是LinkedHashMap区分大小写,因此在结构中定义结构时,必须使用括号表示法(即:
struct1[“struct2”]
)。值得注意的是,您可以像对待CFML结构一样对待它们,因为您可以对它们使用
structKeyExists()
等函数

<cfset LinkedHashMap = createObject("java", "java.util.LinkedHashMap") />

<cfset lang = LinkedHashMap.init() />
<cfset lang["ch"] = LinkedHashMap.init() />
<cfset lang["en"] = LinkedHashMap.init() />

<cfset lang["ch"]["dealer1"] = "代理 1">
<cfset lang["ch"]["dealer2"] = "代理 2">
<cfset lang["ch"]["dealer3"] = "代理 3">
<cfset lang["ch"]["dealer4"] = "代理 4">

<cfset lang["en"]["dealer1"] = "Dealer 1">
<cfset lang["en"]["dealer2"] = "Dealer 2">
<cfset lang["en"]["dealer3"] = "Dealer 3">
<cfset lang["en"]["dealer4"] = "Dealer 4">

<!--- Example to see structure --->
<cfdump var="#lang#">

您可以在trycf.com上测试上述示例->

您可能需要编辑答案以同时显示键的值。所以,
  • #经销商#
  • 变成了
  • #经销商#:#郎[经销商]#
  • 。这将显示
    dealer1:代理 1
    etc@JohnWhish,正确呼叫,已进行更改。您可能希望编辑答案以同时显示键的值。所以,
  • #经销商#
  • 变成了
  • #经销商#:#郎[经销商]#
  • 。这将显示
    dealer1:代理 1
    etc@JohnWhish,打得好,做了些改变。