You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ColdFusion如何在同一cfloop循环中同时输出数组索引与结构体数据

问题说明

存储结构体的CFML数组,拆分为两个独立循环时可分别输出数组索引、对应结构体数据,无法在单循环内同时获取两类信息。
原有测试代码分别实现了:

  • 单循环遍历输出结构体字段内容
  • 单循环遍历输出数组索引序号
错误原因

cfloop遍历数组时属性作用容易混淆:

  • 仅指定index属性时,该属性接收的是当前遍历到的数组元素本身,不是数组索引
  • 同时指定item和index属性时,item接收当前数组元素,index才接收对应的数组索引序号
    原有第二个循环虽然同时声明了两个属性,但仅输出了索引变量,没有调用存储结构体的元素变量,因此需要拆分循环实现需求。
实现代码

单循环同时输出索引和结构体数据的写法如下,直接在cfloop标签中同时声明item和index属性即可:

<!--- 结构体、数组初始化逻辑与原有代码一致 --->
<cfset structRe = StructNew() />
<cfset structRe.id = "14">          
<cfset structRe.title = "Title">
<cfset arryRe = ArrayNew(1) />
<cfset ArrayAppend(arryRe, structRe)>

<cfoutput>
    <cfdump var="#arryRe#" />
</cfoutput>

<!--- 单循环同时获取索引和结构体数据 --->
<cfloop array="#arryRe#" item="item" index="i">
    <cfoutput>
        数组索引:#i# <br />
        结构体id:#item.id# <br />
        结构体title:#item.title# <br />
    </cfoutput>
</cfloop>

注意:CFML原生数组下标从1开始计数,输出的索引值符合ColdFusion的数组规则。

内容的提问来源于stack exchange,提问作者Nich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 02:24:21