2013-11-01 22 views
11

:Coldfusion - Bir Yapı Dizisi ile nasıl döngü yapılır ve tüm KEY değerleri dinamik olarak yazdırılır? Aşağıda Yapı geçirilmesi dizisi verilmesi

Ben yaparak tüm alanlardan tüm değerleri yazdırmak mümkün duyuyorum

enter image description here

:

<cfset ColumnNames = structKeyArray(ApiData[1])>      
    <cfset ColumnLength = ArrayLen(ColumnNames)>  

    <cfloop from="1" to="#ArrayLen(ApiData)#" index="i">    
     <cfdump var="#ApiData[i].Created#">    
     <cfdump var="#ApiData[i].Name#"> 
       ...and so on 

Şimdi böylece her alanda döngü çalışıyorum Aslında her alanın adını yazmam gerekmiyor. Bunu dinamik olarak nasıl yaparım? şey gibi:

<cfloop from="1" to="#ArrayLen(ApiData)#" index="i">  
     <cfloop from="1" to="#ColumnLength#" index="i"> 
       <!---<cfdump var="#ApiData[i]." + "#ColumnNames[i]#" + "#">---> 
       <!---<cfdump var="#ApiData[i].ColumnNames[i]#">---> 
     </cfloop> 
    </cfloop> 

Ben sadece bir dostum ve ColdFusion sözdizimi

Yardımlarınız için teşekkür ederim Net :-) çok farklıdır yardımcı bir ColdFusion adam değilim

+2

Oyumu 3 basamaklı içine şöhretin almalısınız. Bana bir bira borçlusun. –

cevap

17
<cfloop from="1" to="#arrayLen(ApiData)#" index="i"> 
    <cfset data = ApiData[i]> 
    <cfloop collection="#data#" item="key"> 
    #key#:#data[key]# 
    </cfloop> 
</cfloop> 

Veya almak için daha kolay olması gereken CFScript'i kullanabilirsiniz.

for (d in ApiData) // for-in loop for array 
{ 
    for (key in d) // for-in loop for struct 
    { 
    writeOutput(key & ":" & d[key]); 
    } 
} 

kullanımı bu linki: Bu soru üzerine http://www.learncfinaweek.com/week1/Looping/

+0

@Max - CF sürümünden bahsetmediğinizden beri, * dizileriyle * for döngüsünün CF9.0.1 + gerektirdiğini unutmayın. – Leigh

+0

Bu işe yaramadı. Çözümünüzün tek bir yapı için geçerli olduğu görülüyor. Unutmayın, bir Yapı Dizileri arasında döngü yapmak zorundayım. \t \t \t \t \t \t \t \t #key #: # ApiData [ ben aşağıdakileri yaparak Array ilk yapıyı erişen çalıştı < "[1] [kilit] # # ApiData" CFDUMP var => ve aslında çalıştı: - # \t \t \t arada ben CF 8 kullanıyorum] tuşu sayesinde – Max

+0

Ben değiştirildi. Şimdi tek ihtiyacım olan şey onu dinamik yapmaktır - teşekkürler! – Max