上周我正在使用2D数组,无论我尝试什么,我都无法访问数组中的数据元素。 Coldfusion不断回归"复杂/简单的价值"位置1中的elemnet错误或索引等。
我使用结构移动了一个不同的方法,但我很好奇为什么我无法获得正确的索引。
我试图在文本文件中阅读:
<cfset myarr = arraynew(2) />
<cffile action="read" file="#filepath#" variable="filedata" />
<cfloop list="#filedata#" index="line" delimiters="#chr(13)##chr(10)#">
<cfset line = trim( line ) />
<cfif line contains "routing number">
<cfset arrayappend( myarr[1], listlast( line, ":" )) />
<cfelseif line contains "account number">
<cfset arrayappend( myarr[2], listlast( line, ":" )) />
</cfif>
<cfloop index="j" from="1" to="#arraylen( myarr )#" step="1">
<cfoutput>
#listgetat( myarr[line][j] )#
</cfoutput>
</cfloop>
</cfloop>
现在,如果我转出我的数组,那么数组看起来是正确的
array
1
1 999999999
2 111111111
array
2
1 12345678
2 987654321
但是,上面的嵌套循环没有得到索引中元素的正确位置,我不明白为什么。
感谢您提供的任何帮助或见解。
答案 0 :(得分:1)
你的逻辑没有任何意义:
arraylen(myarr)
),但随后将该变量用作数组的 second 维度中的索引。另外,正如其他人提到的那样,请发布您的实际代码。这不是你的代码,因为它甚至不编译,更不用说运行了。
这个答案并没有让你到达你想要结束的地方(因为你没有真正明确地定义它),但它解释了为什么你肯定没有到达那里。
我是否可以建议您修改问题以描述您实际想要实现的目标,并根据评论中的所有建议修改您的代码。然后发布实际编译的代码。