如何循环遍历数组并同时输出两个元素而不重复以前的索引?

时间:2017-03-21 17:24:18

标签: arrays coldfusion cfloop

我有一个数字数组,在循环数组时我想要输出两个元素。这是我的阵列:

<cfset myArray = [74539,1500285,1334095,1500293,1334096,1500294,1334098,1500295,1334109,1500296]>

这是我的循环:

<cfoutput>
    <cfloop from="1" to="#arraylen(myArray)#" index="a">
        <cfset currAssignID = firstAssignList[a]>
        <cfset nextAssignID = firstAssignList[a+1]>
        #currAssignID# - #nextAssignID#<br>
    </cfloop>
</cfoutput>

上面的代码将产生此输出:

74539 - 1500285
1500285 - 1334095
1334095 - 1500293
1500293 - 1334096
1334096 - 1500294
1500294 - 1334098

正如您所看到的,我的代码每次输出以前的数字,我希望看到:

74539 - 1500285
1334095 - 1500293
1334096 - 1500294
1334098 - 1500295
1334109 - 1500296

如果有人知道我的代码在哪里破解,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:3)

您可以在循环上使用step属性来指定循环遍历元素的增量。如果您想成对输出它们,可以设置step="2"。这将跳过其他所有元素。

<cfset myArray = [74539,1500285,1334095,1500293,1334096,1500294,1334098,1500295,1334109,1500296,1334110,1500297,1334117,1500298,1334124,1500299,1334138,1500286,1334139,1500287,1334140,1500288,1337768,1500289,1338779,1500290,1338783,1500291,1338801,1500292]>


<cfoutput>
    <cfloop step="2" from="1" to="#arraylen(myArray)#" index="a">
        <cfset currAssignID = myArray[a]>
        <cfset nextAssignID = myArray[a+1]>
        #currAssignID# - #nextAssignID#<br>
    </cfloop>
</cfoutput>

这将给出结果:

  74539 - 1500285
  1334095 - 1500293
  1334096 - 1500294
  1334098 - 1500295
  1334109 - 1500296
  1334110 - 1500297
  1334117 - 1500298
  1334124 - 1500299
  ... and so on

您可以在此处查看示例 - http://trycf.com/gist/32a57dc787ba2756c88b4d1b74e3917c/acf11?theme=monokai