使用cfloop查询填充数组

时间:2016-03-03 01:22:25

标签: arrays coldfusion cfquery cfloop

我正在尝试使用cfloop查询数据构建数组。我不知道如何增加数组计数而不是每次都覆盖数组中的第一个值?如果这没有意义,请告诉我。

<CFSET MyArray=ArrayNew(1)>
<CFLOOP QUERY="GetPermission">
   <CFIF #GetPermission.Permission_ID GT 10>
        <CFSET MyArray[increment value][GetPermission.Permission_ID]>
   </CFIF>
</CFLOOP>

所以我的数组应该看起来像MyArray[11,14,24,25,31]

3 个答案:

答案 0 :(得分:4)

除非您确实需要其他内容的索引,否则只需省略它并使用ArrayApend “...将数组元素追加到指定数组的末尾”。

 <cfset ArrayAppend( MyArray, GetPermission.Permission_ID)>

顺便说一句,当您遇到这样的问题时,仔细阅读文档的functions by category部分会很有帮助。大多数功能名称都很好。只需选择正确的类别,并查看功能名称,通常可以立即提供答案。然后,只需阅读使用文档并测试代码即可。

更新但是,正如your other thread所讨论的那样,对于此特定任务(即更新权限列表),最终有比数组更好的选项。

答案 1 :(得分:3)

对于增量,您可以执行以下任何操作:

  • 使用Leigh提到的ArrayAppend()功能
  • 在顶部设置一个计数器变量,然后使用它然后增加值
  • 使用ArrayLen(myArray)+1作为增量计数器

正如旁注;你写的剧本有几个问题。

答案 2 :(得分:0)

Leigh的解决方案100%准确,但根据具体情况,您甚至可能不需要将查询结果转储到数组中。您可以直接访问查询结果中的值。

Ben Nadel在此发表了一篇文章:http://www.bennadel.com/blog/149-ask-ben-converting-a-query-to-a-struct.htm