我来处理我的关联数组PHP的风格,我会像下面ColdFusion和关联数组
array[day][time] = count
这让我很容易地计算出现的次数东西的数量和它的结构简单跟...共事。在我这里,我正在阅读数据库中的结果集,并且获得类似这样的工作将会非常有用
如何在Coldfusion中执行相同类型的事?
我来处理我的关联数组PHP的风格,我会像下面ColdFusion和关联数组
array[day][time] = count
这让我很容易地计算出现的次数东西的数量和它的结构简单跟...共事。在我这里,我正在阅读数据库中的结果集,并且获得类似这样的工作将会非常有用
如何在Coldfusion中执行相同类型的事?
这看起来像一个结构,我 - 您可以轻松地创建你习惯的方式:
<cfscript>
myStruct = { day= { time = count}};
</cfscript>
或者使用旧的语法,也许概括了它更好。
<cfset mySTruct = structNew()/>
<Cfset mySTruct.day = structNew()/>
<Cfset myStruct.day.time = count/>
别忘了,一个ColdFusion查询对象是已经与queryName [结构] [行]的格式非常有用的小数据构建 - 和查询的查询(在那里你可以利用SQL简单查询查询对象)也可以轻松访问这些数据。
希望这可以帮助您注册。祝你好运。
结构支持括号表示法,但您需要在引号中提供它们:myStruct ['day'] ['count'] = x;如果你是ColdFusion 9.01+,你可以简单地使用它来简单定义结构:
那么, ,'时间'和'计数'是动态值(我应该更清楚)。 – 2012-07-13 20:16:49
Reg - 你的意思是:mystruct ['11/20/2010'] ['4:00 am'] = 1234; ...如果是的话,你可以做到这一点(使用括号表示法),但它可能会给你一点胃灼热。不知道这是否是*语言中的好主意:) – 2012-07-13 20:28:34
这是一个后续的评论Reginold了有关检查是否结构定义:
<cfset thisvar = '04/MAR/2012'>
<cfset thatvar = '04:11'>
<cfset myStruct[thisvar][thatvar] = 'test'>
<!--- Check first key, then second --->
<cfif structKeyExists(myStruct,thisvar) and structKeyExists(mystruct[thisvar],thatvar)>
Both Keys Exist.<hr>
</cfif>
<!--- Alternative Check --->
<cfif isDefined('myStruct.#thisvar#.#thatvar#') >
Key Exists.<hr>
</cfif>
<cfdump var="#myStruct#">
我改变了你的变量名称,因为'this'是一个保留字(指的是cfc中的公共变量),因此可能导致错误/混淆。 – 2012-07-13 22:11:30
您可以使用ColdFusion数组做到这一点,太。
array = [[], []];// initialize array
array[1][1] = 1;// set a value in the array
只要记住,ColdFusion的数组的索引为1开始,不是0
正如一个侧面说明 - PHP的关联数组,而CF结构_are not_订购。如果您需要依赖结构中项目的顺序,则需要实现Java HashMap。 – 2012-07-13 23:35:58
更具体地说,一个LinkedHashMap用于保存键创建的日期顺序,TreeMap用于按照您选择的算法或HashMap对键进行排序,该HashMap内部高效地排序,看起来像是随机的。 – 2012-07-19 01:50:21
cf中的关联数组通常称为“结构”。 'struct [day] [time] = count'将日期和时间解释为变量。要将它们设置为新键,请将它们包装在引号中。 'struct ['day'] ['time'] = count'。 – 2012-07-19 01:54:16