Coldfusion:二维阵列中的元素索引

时间:2014-01-30 19:25:29

标签: arrays coldfusion

上周我正在使用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

但是,上面的嵌套循环没有得到索引中元素的正确位置,我不明白为什么。

感谢您提供的任何帮助或见解。

1 个答案:

答案 0 :(得分:1)

你的逻辑没有任何意义:

  1. 你的第二个循环是在你还在构建它的时候试图遍历数组(这不是不可能的,但看起来不像你想做的那样;
  2. 您循环遍历数组的第一个维度(arraylen(myarr)),但随后将该变量用作数组的 second 维度中的索引。
  3. 我强烈怀疑你想要一个结构作为第一个维度,而不是数组。数据的性质是什么?
  4. 另外,正如其他人提到的那样,请发布您的实际代码。这不是你的代码,因为它甚至不编译,更不用说运行了。

    这个答案并没有让你到达你想要结束的地方(因为你没有真正明确地定义它),但它解释了为什么你肯定没有到达那里。

    我是否可以建议您修改问题以描述您实际想要实现的目标,并根据评论中的所有建议修改您的代码。然后发布实际编译的代码。