我有以下数组,每个数组中都有一个结构(请参阅此jsfiddle了解数组的外观)。
如何遍历数组,然后获取数组中的结构以拉出用户ID?我一直在尝试使用变化的错误。我得到的最常见的错误是:
Must be a valid structure or COM object
以下是我必须循环生成上述错误的数组和结构的代码(请参阅此jsfiddle了解数组的外观)。
<cfloop from="1" to="#ArrayLen(getTeamDetails)#" index="s">
#s#) #getTeamDetails[s][uid]#<br>
</cfloop>
Mark要求更多代码,所以我已经包含了如何填充数组/结构:
<cfoutput query="getTeam">
<cfset getTeamDetails[getTeam.currentrow] = StructNew()>
<cfset a = StructInsert(getTeamDetails[getTeam.currentrow], "firstname", getTeam.firstname, 1)>
<cfset a = StructInsert(getTeamDetails[getTeam.currentrow], "lastname", getTeam.lastname, 1)>
<cfset a = StructInsert(getTeamDetails[getTeam.currentrow], "uid", getTeam.uid, 1)>
</cfoutput>
答案 0 :(得分:4)
我认为这应该有效:
<cfloop from="1" to="#ArrayLen(getTeamDetails)#" index="s">
#s#) #getTeamDetails[s].uid#<br>
</cfloop>
我从头开始创建你的数组和结构并循环遍历它以访问你需要访问的structkey。
<cfscript>
ThisArray = arrayNew(1);
for (i = 1; i lte 3; i=i+1) {
ThisStruct = structNew();
ThisStruct.UID = "123";
arrayAppend(ThisArray, ThisStruct);
}
for (i = 1; i lte arrayLen(ThisArray); i=i+1) {
ThisOutput = "#i#) #ThisArray[i].UID# <br>";
writeOutput(ThisOutput);
}
</cfscript>
<cfdump var="#ThisArray#">