如何设置2D数组

时间:2016-03-14 07:05:45

标签: arrays coldfusion

我在ColdFusion中设置二维数组时遇到一些问题。我使用:

设置我的数组
<cfset lang=ArrayNew(2)>
<csset lang["ch"]["dealer1"] = "代理 1">
<csset lang["en"]["dealer1"] = "Dealer 1">
.....

但是当我转储数组时,它是空的。有人可以帮忙吗?我不想用数字来设定我的语言。

2 个答案:

答案 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#" />

A CFDUMP of struct contents.

这应该让你开始。在进一步研究之前深入研究这些功能和ColdFusion documentation on structs