Coldfusion - How to loop through an Array of Structure and print out dynamically all KEY values?

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-04 17:43:25

问题


Giving the Array of Structure below:

I am able to print out all values from all fields by doing:

    <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

Now I am trying to loop through all fields so that I dont have to actually write the name of each field. How do I do this dynamically? Something like:

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

I am not a ColdFusion guy, just helping a buddy and the ColdFusion syntax is very different from .Net :-)

Thank you for your help


回答1:


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

Or you can use CFScript, which should be much easier to pick up.

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

use this link: http://www.learncfinaweek.com/week1/Looping/



来源:https://stackoverflow.com/questions/19719506/coldfusion-how-to-loop-through-an-array-of-structure-and-print-out-dynamically

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!