使用 cfloop 查询填充数组

populate array using cfloop query

我正在尝试使用 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]

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

 <cfset ArrayAppend( MyArray, GetPermission.Permission_ID)>

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

更新: 然而,正如在 上所讨论的,对于这个 特定的 任务,最终有比数组更好的选择(即更新权限列表)。

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

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

作为旁注;你写的脚本有几个问题。

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

Ben Nadel 对此有一个 post:http://www.bennadel.com/blog/149-ask-ben-converting-a-query-to-a-struct.htm