2013-11-01 12 views
11

Giving Array của Cấu trúc dưới đây:Coldfusion - Làm thế nào để lặp qua một mảng cấu trúc và in ra tất cả các giá trị KEY?

enter image description here

tôi có thể in ra tất cả các giá trị từ tất cả các lĩnh vực bằng cách thực hiện:

<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 

Bây giờ tôi đang cố gắng để lặp qua tất cả các lĩnh vực để Tôi không phải viết tên của mỗi trường. Làm cách nào để làm điều này một cách linh hoạt? Cái gì như:

<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> 

Tôi không phải là một chàng trai ColdFusion, chỉ giúp một người bạn và cú pháp ColdFusion là rất khác nhau từ Net :-)

Cảm ơn bạn đã giúp đỡ của bạn

+2

My bỏ phiếu về vấn đề này nên danh tiếng của bạn thành 3 chữ số. Bạn nợ tôi một ly bia. –

Trả lời

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

Hoặc bạn có thể sử dụng CFScript, việc này dễ dàng hơn nhiều để nhận.

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

sử dụng liên kết này: http://www.learncfinaweek.com/week1/Looping/

+0

@Max - Vì bạn không đề cập đến phiên bản CF, hãy lưu ý rằng các vòng lặp for-in-loop có * mảng yêu cầu CF9.0.1 +. – Leigh

+0

Điều đó không hiệu quả. Dường như giải pháp của bạn áp dụng cho một cấu trúc đơn lẻ. Hãy nhớ rằng, tôi phải lặp qua một Array of Structures. tôi đã cố gắng truy cập vào các cấu trúc đầu tiên của mảng bằng cách làm như sau: \t \t \t \t \t \t \t \t #key #: # ApiData [ key] # \t \t \t tôi đang sử dụng CF 8 bằng cách này - nhờ – Max

+0

tôi đã thay đổi để: và nó thực sự làm việc. Bây giờ tất cả những gì tôi cần là làm cho nó năng động - cảm ơn bạn! – Max

Các vấn đề liên quan