Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Coldfusion:二维数组中元素的索引_Arrays_Coldfusion - Fatal编程技术网

Arrays Coldfusion:二维数组中元素的索引

Arrays Coldfusion:二维数组中元素的索引,arrays,coldfusion,Arrays,Coldfusion,在过去的一周里,我使用了一个2D数组,无论我做了什么尝试,我都无法访问数组中的数据元素。Coldfusion不断返回位置1中元素的“复杂/简单值”错误或索引,等等 我在上一篇文章中发现了一个使用struct的不同方法,但是我很好奇为什么我不能得到正确的索引 我试图在文本文件中读取: <cfset myarr = arraynew(2) /> <cffile action="read" file="#filepath#" variable="filedata" />

在过去的一周里,我使用了一个2D数组,无论我做了什么尝试,我都无法访问数组中的数据元素。Coldfusion不断返回位置1中元素的“复杂/简单值”错误或索引,等等

我在上一篇文章中发现了一个使用struct的不同方法,但是我很好奇为什么我不能得到正确的索引

我试图在文本文件中读取:

<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>
但是,上面的嵌套循环没有得到元素在索引中的正确位置,我不明白为什么


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

您的逻辑毫无意义:

  • 第二个循环是在构建阵列时尝试在阵列上循环(这不是不可能的,但似乎不是您想要做的
  • 在数组的第一个维度上循环(
    arraylen(myarr)
    ),然后将该变量用作数组第二个维度的索引
  • 我强烈怀疑你想要一个结构作为第一维度,而不是数组。数据的性质是什么
  • 另外,正如其他人提到的,请发布您的实际代码。这不可能是您的代码,因为它甚至没有编译,更不用说运行了

    这个答案并不能让你到达你想要的终点(因为你还没有真正明确的定义),但它解释了为什么你肯定没有到达终点


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

    上述内容不编译。“LISTGETAT函数的参数验证错误”你有原始代码吗?你的第二个循环没有意义。如果你在myarr[1]和myarr[2]中添加,为什么要在[line][j]处获取索引,而line是文件的一行……不是行号。而且j在myarr的一个数组上循环,但你不想知道myarr[1]或myarr[2]的长度吗-真的需要原始代码,这是相当混乱。仅供参考-当在一个大文件上逐行循环时…你可以使用它…它更干净,你不必担心分隔符等。做一些我建议的小步骤。首先声明一个2D数组,看看arrayappend函数是否工作。它可能不工作。怎么样每次读取一行时,请使用ListToArray()在它上面?一个成批ACH数据的文本文件。我没有实际的代码可以发布,因为我最终选择了另一个方向,并放弃了我一直在研究的数组代码。谢谢你的回答。我不想在这个问题上浪费任何人的时间。对。因此,请输入一个答案并关闭该问题,或者删除它。不要留下它四处闲逛,因为人们会认为它仍然需要回答。建议删除它。
    array
    1
        1 999999999
        2 111111111
    
    array
    2
        1 12345678
        2 987654321