从具有结构的数组中获取数组键和结构数据
Get array key and structure data from an array with structure
我有一个具有结构的数组。问题是我不能在同一个循环中输出数组编号和结构数据,但是如果我有两个不同的循环,数据将显示没有任何错误。
下面的代码有两个不同的循环,展示了我如何分别访问数组编号和结构数据。
如何在同一个循环中输出数组编号和结构数据?
代码可以在这里测试https://cffiddle.org/
<!--- Create new structure --->
<cfset structRe = StructNew() />
<!--- Add data to structure --->
<cfset structRe.id = "14">
<cfset structRe.title = "Title">
<!--- Create new Array --->
<cfset arryRe = ArrayNew(1) />
<!--- Add structure to array --->
<cfset ArrayAppend(arryRe, structRe)>
<cfoutput>
<cfdump var="#arryRe#" />
</cfoutput>
<!--- Loop to access structure --->
<cfloop array ="#arryRe#" index="i">
<cfoutput>
#i.id# #i.title# <br />
</cfoutput>
</cfloop>
<!--- Loop to access array number --->
<cfloop array ="#arryRe#" item="item" index="i">
<cfoutput>
#i# <br />
</cfoutput>
</cfloop>
刚刚弄明白了。
<cfloop array ="#arryRe#" item="item" index="i">
<cfoutput>
#i# #item.id# #item.title#<br />
</cfoutput>
</cfloop>
稍微简化您的代码,并添加局部作用域(假设您在函数中),还有另一种方法可以做到这一点:
<cfset local.arrayRe = [
{"id": "14", "title": "Title Fourteen"}
, {"id": "15", "title": "Title Fifteen"}
] />
<cfloop array="#local.arrayRe#" index="local.i" item="local.stItem">
<cfoutput>
Item ##: #local.i#, ID: #local.stItem.id#, Title: #local.stItem.title#<br />
</cfoutput>
</cfloop>
我有一个具有结构的数组。问题是我不能在同一个循环中输出数组编号和结构数据,但是如果我有两个不同的循环,数据将显示没有任何错误。
下面的代码有两个不同的循环,展示了我如何分别访问数组编号和结构数据。
如何在同一个循环中输出数组编号和结构数据?
代码可以在这里测试https://cffiddle.org/
<!--- Create new structure --->
<cfset structRe = StructNew() />
<!--- Add data to structure --->
<cfset structRe.id = "14">
<cfset structRe.title = "Title">
<!--- Create new Array --->
<cfset arryRe = ArrayNew(1) />
<!--- Add structure to array --->
<cfset ArrayAppend(arryRe, structRe)>
<cfoutput>
<cfdump var="#arryRe#" />
</cfoutput>
<!--- Loop to access structure --->
<cfloop array ="#arryRe#" index="i">
<cfoutput>
#i.id# #i.title# <br />
</cfoutput>
</cfloop>
<!--- Loop to access array number --->
<cfloop array ="#arryRe#" item="item" index="i">
<cfoutput>
#i# <br />
</cfoutput>
</cfloop>
刚刚弄明白了。
<cfloop array ="#arryRe#" item="item" index="i">
<cfoutput>
#i# #item.id# #item.title#<br />
</cfoutput>
</cfloop>
稍微简化您的代码,并添加局部作用域(假设您在函数中),还有另一种方法可以做到这一点:
<cfset local.arrayRe = [
{"id": "14", "title": "Title Fourteen"}
, {"id": "15", "title": "Title Fifteen"}
] />
<cfloop array="#local.arrayRe#" index="local.i" item="local.stItem">
<cfoutput>
Item ##: #local.i#, ID: #local.stItem.id#, Title: #local.stItem.title#<br />
</cfoutput>
</cfloop>