2016-03-23 22 views
0

Ich habe eine zweidimensionale Anordnung, die so aussieht, nachdem ich die Ausgabe dieses auf dem Bildschirm verwendet:Wie Schleife durch zweidimensionales Array?

array 
1 
array 
1 0600 
2 
array 
1 0 
3 
array 
1 0600 
4 
array 
1 0 
5 
array 
1 0615 
6 
array 
1 0 
7 
array 
1 0615 
8 
array 
1 0 
9 
array 
1 0630 
10 
array 
1 0 
11 
array 
1 0630 
12 
array 
1 1 

Deshalb möchte ich Schleife durch meine Array und Ausgangswerte in dieser Reihenfolge:

0600 0 
0600 0 
0615 0 
0615 0 
0630 0 
0630 1 

hier ist der Code, wie ich meine Array erstellt:

<cfloop list="#ListGetAt(dataList,i,",")#" index="z" delimiters="|"> 
    <cfoutput query="getR" group="theYear"> 
     <cfset name = myArray.append([z])> 
     <cfif Description eq z> 
      <cfset count = myArray.append([theCount])> 
     <cfelse> 
      <cfset count = myArray.append([0])> 
     </cfif> 
    </cfoutput> 
</cfloop> 

Also, wie kann ich Schleife nun diese beiden Datensätze, um zu bekommen, wie ich Ihnen oben gezeigt? Ich habe versucht, dies aber das hat nicht funktioniert:

<cfoutput> 
    <cfloop from="1" to="#arraylen(myArray)#" index="i"> 
     <cfloop array="#myArray#" index="j"> 
      #i# - #myArray[1][j]#<br/> 
     </cfloop> 
    </cfloop> 
</cfoutput> 

Edit: Wenn ich diesen Code verwendet:

<cfloop array="#myArray#" index="i"> 
    <cfloop array="#myArray#" index="j"> 
     <cfoutput> #myArray[i][j]#<br/> </cfoutput> 
    </cfloop> 
</cfloop> 

ich diesen Fehler habe:

The value coldfusion.runtime.Array cannot be converted to a number. 

Wenn jemand helfen kann Dieses Problem lassen Sie mich bitte wissen.

+0

Ich bin kein Coldfusion-Typ, aber sollten Sie nicht mit [i] [j] z.B. #myArray [i] [j] nicht 1 und j – user5976242

+0

Seitliche Anmerkung, die Phrase * hat nicht funktioniert: * sagt uns nicht viel. Während ich den Verdacht habe, dass user5976242 korrekt ist, versuchen Sie eine Beschreibung des tatsächlichen Ergebnisses und insbesondere, wie es sich von den erwarteten Ergebnissen unterscheidet. – Leigh

+0

Wenn ich diesen Code verwendet: \t \t \t \t \t \t \t \t \t \t \t \t #myArray [i] [j] #
\t \t \t \t
\t \t \t
\t \t
Ich habe diesen Fehler: Der Wert coldfusion.runtime.Array kann nicht in eine Zahl umgewandelt werden. –

Antwort

3

So erhalten Sie die Ausgabe von Ihrem zweidimensionalen Array.

<cfscript> 
data = [ 
    ["0600", 0], 
    ["0600", 0], 
    ["0615", 0], 
    ["0615", 0], 
    ["0630", 0], 
    ["0630", 1] 
]; 

// script version 
for (foo in data) { 
    writeOutput(foo[1] & " " & foo[2] & "<br>"); 
} 

</cfscript> 

<cfoutput> 
tag version...<br> 
<cfloop array="#data#" index="foo"> 
    #foo[1]# #foo[2]#<br> 
</cfloop> 
</cfoutput> 

Ein Beispiel hier im Einsatz: http://trycf.com/gist/86b42b56ef7348ec0d44/acf2016?theme=monokai

Allerdings bin ich mir nicht sicher, warum Sie einen 2-dimensionalen Array verwenden, wenn ein Array von Strukturen (Schlüsselwertepaare) ein einfacher scheint Art und Weise, es zu tun:

zum Beispiel:

<cfscript> 
data = [ 
    {key:"0600", count:0}, 
    {key:"0600", count:0}, 
    {key:"0615", count:0}, 
    {key:"0615", count:0}, 
    {key:"0630", count:0}, 
    {key:"0630", count:1} 
]; 

// script version 
for (foo in data) { 
    writeoutput(foo.key & " " & foo.count & "<br>"); 
} 

</cfscript> 

<cfoutput> 
tag version...<br> 
<cfloop array="#data#" index="foo"> 
    #foo.key# #foo.count#<br> 
</cfloop> 
</cfoutput> 
+0

Wie kann ich Array-Struktur mit Schlüssel und Anzahl erstellen Werte aus diesem Code: < cfset name = myArray.append ([z])> ? –

+1

Etwas wie '' –

0

Sie Ihre Schleife beheben können:

<cfoutput> 
<cfloop array="#myArray#" index="firstDimension"> 
    <cfloop array="#firstDimension#" index="secondDimension"> 
     #secondDimension#<br/> 
    </cfloop> 
</cfloop> 
</cfoutput>