1

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

4

3 回答 3

4

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

 <cfset ArrayAppend( MyArray, GetPermission.Permission_ID)>

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

更新:但是,正如您在其他线程上所讨论的,对于这个特定任务(即更新权限列表),最终有比数组更好的选项。

于 2016-03-03T02:43:55.610 回答
3

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

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

就像旁注一样;你写的脚本有几个问题。

于 2016-03-03T02:53:21.690 回答
0

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

Ben Nadel 在这里有一篇关于此的文章:http ://www.bennadel.com/blog/149-ask-ben-converting-a-query-to-a-struct.htm

于 2016-03-03T17:05:41.497 回答