在循环中创建一个列表

时间:2016-07-13 16:45:03

标签: coldfusion

我正在尝试在循环中创建逗号分隔列表,但我想我错过了一些东西。当我转储item_id_list时,我只是用空格分隔项目 - 而不是逗号。任何人都可以指出我错过了什么吗?

<cfloop array="data" index="doc">
    <cfif structKeyExists(doc, "id") >
        <cfset the_item_id = doc.id /> 
    </cfif>
  <cfset item_id_list = ''/>
  <cfset item_id_list = listappend(item_id_list,'#the_item_id#',',')/>
</cfloop>

2 个答案:

答案 0 :(得分:9)

在循环外创建列表:

<cfset item_id_list = "" />
<cfloop array="#data#" index="doc">
   <cfif structKeyExists(doc, "id") >
       <cfset item_id_list = listappend(item_id_list, doc.id, ",") />
   </cfif>
</cfloop>

答案 1 :(得分:0)

这会有用吗?

<cfset item_id_list = ArrayToList(data.id)>
编辑:哎呀。无法像这样引用数组中的结构。而是尝试:

<cfscript>
    item_id_list = "" ;
    for (row in data) {
        if (structkeyexists(row,"id") ) {
            item_id_list = listappend(item_id_list,row.id) ;
        }
    }
</cfscript>

对于像这样的循环,cfscript语法更容易看到。