2012-03-16 30 views
3

我在每個數組中都有一個結構如下的數組(有關數組的內容,請參閱此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> 

馬克問了一些代碼,所以我已經包括了我如何填充數組/結構:

<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

什麼是變量「UID」?你的「s」將包含1到3的索引,這可能不是你的問題。我們需要查看更多代碼才能知道如何提供幫助。 – 2012-03-16 17:50:11

+0

UID包含用戶標識。 jsfiddle有一個uid包含的例子。我在jsfiddle中包含了30條記錄中的3條。 – HPWD 2012-03-16 17:53:30

回答

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#"> 
+2

你幾乎擁有它。在[s]之後和uid之前需要一段時間。 ' #s#)#getTeamDetails [s] .uid#
' – HPWD 2012-03-16 17:56:56

+0

你去了。謝謝@ evik-james – HPWD 2012-03-16 18:00:13

相關問題