结构存储在数组中时输出userid

时间:2012-03-16 17:30:49

标签: arrays coldfusion structure

我有以下数组,每个数组中都有一个结构(请参阅此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>

1 个答案:

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