我在ColdFusion中设置二维数组时遇到一些问题。我使用:
设置我的数组<cfset lang=ArrayNew(2)>
<csset lang["ch"]["dealer1"] = "代理 1">
<csset lang["en"]["dealer1"] = "Dealer 1">
.....
但是当我转储数组时,它是空的。有人可以帮忙吗?我不想用数字来设定我的语言。
答案 0 :(得分:3)
与PHP不同 - 我怀疑你是从哪里来的 - 数组(有序和数字索引)和结构(由任意键值索引)之间存在适当的区别。
所以你想要这样的东西:
myStruct = {akey="some value", subStruct={someKey="another value"}}; //etc
答案 1 :(得分:3)
ColdFusion struct
是一个基于字符串的数据集合。你需要学习很多functions related to structs。
从包含您的数据集合的根结构开始:
<cfset lang = structNew() />
在此之下,您需要两个以上的数据集合。每个集合都有自己的根,在您的情况下是一个语言代码。
<cfset lang.ch = structNew() />
<cfset lang.en = structNew() />
现在您可以将keys
添加到每个子结构中:
<cfset lang["ch"]["dealer1"] = "代理 1">
<cfset lang["en"]["dealer1"] = "Dealer 1">
或者,
<cfset lang.ch.dealer1 = "代理 1">
<cfset lang.en.dealer1 = "Dealer 1">
现在转储结构lang
的内容,并将页面编码设置为UTF-8,以可视化ColdFusion如何存储数据。
<cfprocessingdirective pageEncoding="utf-8" />
<cfset lang = structNew() />
<cfset lang.ch = structNew() />
<cfset lang.en = structNew() />
<cfset lang["ch"]["dealer1"] = "代理 1">
<cfset lang["en"]["dealer1"] = "Dealer 1">
<cfdump var="#lang#" />
这应该让你开始。在进一步研究之前深入研究这些功能和ColdFusion documentation on structs。