coldfusion
ColdFusion-Arrays
Suche…
Syntax
- ArrayNew (Dimension, isSynchronized)
Parameter
| Name | Beschreibung |
|---|---|
| Abmessungen | Anzahl der Dimensionen in einem neuen Array: 1, 2 oder 3 |
| isSynchronized | Bei false wird ein nicht synchronisiertes Array erstellt. Wenn true , gibt die Funktion ein synchronisiertes Array zurück. |
Bemerkungen
In einem synchronisierten Array können nicht mehr als zwei Threads gleichzeitig auf das Array zugreifen. Andere Threads müssen warten, bis der aktive Thread seinen Job abgeschlossen hat, was zu einer erheblichen Leistung führt.
In der ColdFusion-Version 2016 können Sie ein nicht synchronisiertes Array verwenden und zulassen, dass mehrere Threads gleichzeitig auf dasselbe Arrayobjekt zugreifen.
Arrays erstellen
Arrays explizit mit ArrayNew () erstellen
Deklarieren Sie ein Array mit der Funktion ArrayNew. Geben Sie die Anzahl der Dimensionen als Argument an.
- ArrayNew ( dimension ) erstellt ein Array mit 1–3 Dimensionen.
- ColdFusion-Arrays werden beim Hinzufügen von Daten dynamisch erweitert.
- ArrayNew () gibt ein Array zurück.
Geschichte
Eingeführt in ColdFusion MX 6
Erklärung
CFML
<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>
CFScript Beachten Sie, dass Sie innerhalb einer Funktion var Scoping verwenden sollten. Frühere Versionen von CF erforderten, dass Var-Scoping das Erste in einer Funktion ist. spätere Versionen erlauben es überall in einer Funktion.
<cfscript>
oneDimensionArray = ArrayNew(1);
public void function myFunc() {
var oneDimensionArray = ArrayNew(1);
}
</cfscript>
Fügen Sie nach dem Erstellen des Arrays Elemente mithilfe der Elementindizes hinzu. Der Coldfusion Array-Index beginnt bei 1:
CFML
<cfset oneDimensionArray[1] = 1>
<cfset oneDimensionArray[2] = 'one'>
<cfset oneDimensionArray[3] = '1'>
CFScript
<cfscript>
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
ArrayAppend () verwenden
Sie können einem Array Elemente hinzufügen, indem Sie die Funktion ArrayAppend(array, value) .
<cfscript>
ArrayAppend(oneDimensionArray, 1);
ArrayAppend(oneDimensionArray, 'one');
ArrayAppend(oneDimensionArray, '1');
</cfscript>
Ausgabe des Array-Inhalts mit <cfdump> :
<cfdump var="#oneDimensionArray#">
Ergebnisse:
CFML
<!--- Two Dimension Array--->
<cfset twoDimensionArray = ArrayNew(2)>
<cfset twoDimensionArray[1][1] = 1>
<cfset twoDimensionArray[1][2] = 2>
<cfset twoDimensionArray[2][1] = 3>
<cfset twoDimensionArray[2][2] = 4>
CFScript
<cfscript>
twoDimensionArray = ArrayNew(2);
twoDimensionArray[1][1] = 1;
twoDimensionArray[1][2] = 2;
twoDimensionArray[2][1] = 3;
twoDimensionArray[2][2] = 4;
</cfscript>
Ausgabe des Arrayinhalts mit <cfdump>
<cfdump var="#twoDimensionArray#">
Ergebnis:
Jedes Element enthält ein anderes Array, in dem die Werte gespeichert werden.
1-D-Array implizit erstellen
Beim impliziten Erstellen eines Arrays umgeben Klammern ([]) den Array-Inhalt mit Komma-Trennzeichen.
<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>
Diese Anweisung entspricht den vier Anweisungen, die zum Erstellen des obigen oneDimensionArray verwendet werden. Das Ergebnis ist das Gleiche bei der Verwendung von:
<cfdump var="#oneDimensionArrayImplicit#">
Erstellen Sie implizit ein 2D-Array
<cfset twoDimensionArrayImplicit = [[ 1 , 2 ],[ 3 , 4 ],[ 5 , 6 ]]>
Oder:
<cfset firstElement = ["1", "2"]>
<cfset secondElement= ["3", "4"]>
<cfset thirdElement = ["5", "6"]>
<cfset twoDimensionArrayImplicit = [firstElement , secondElement, thirdElement]>
Inhalt mit ausgeben
<cfdump var="#twoDimensionArrayImplicit#">
Alternative explizite Erklärung
Sie können auch 1 Dimension Array als deklarieren
<cfset oneDimensionArray = []>
<cfscript>
oneDimensionArray = [];
</cfscript>
Diese Deklaration ist dieselbe wie bei der Verwendung von ArrayNew(1) .
Aber wenn Sie versuchen, 2 Dimension Array als zu deklarieren
<cfset twoDimensionArray =[][]> //Invalid CFML construct
Bei der Verarbeitung dieser Anforderung tritt ein Fehler auf.
Die folgende Anweisung verarbeitet die Anfrage:
<cfset twoDimensionArray =[]>
Die Variable twoDimensionArray jedoch kein Array innerhalb eines Arrays (oder eines 2-Dimension-Arrays). Es enthält tatsächlich eine Struktur innerhalb des Arrays.
<cfset twoDimensionArray =[]>
<cfset twoDimensionArray[1][1] = 1>
<cfset twoDimensionArray[1][2] = 2>
<cfset twoDimensionArray[2][1] = 3>
<cfset twoDimensionArray[2][2] = 4>
<cfdump var="#twoDimensionArray#">
Ergebnis:
Array in CFScript
<cfscript>
oneDimensionArray = ArrayNew(1);
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
<cfif IsDefined("oneDimensionArray")>
<cfdump var="#oneDimensionArray#">
</cfif>
Ergebnis:
Außerdem können wir ein Dimension-Array als deklarieren:
oneDimensionArray = [];
Alternativ eingeführt CF WriteDump() aus CF9 als Funktion äquivalent zu dem <cfdump> Tag , das verwendet werden kann in <cfscript> .
<cfscript>
WriteDump(oneDimensionArray);
</cfscript>
Ähnlich für 2 Dimension Array:
<cfscript>
twoDimensionArray = ArrayNew(2);
twoDimensionArray[1][1] = 1;
twoDimensionArray[1][2] = 2;
twoDimensionArray[2][1] = 3;
twoDimensionArray[2][2] = 4;
</cfscript>
<cfdump var="#twoDimensionArray#">
Ergebnis:
Allgemeine Information
Zunächst einige allgemeine Informationen zum Verhalten von Arrays in Coldfusion im Vergleich zu anderen Programmiersprachen.
- Arrays können nur numerische Indizes haben (wenn Sie einen String-Index haben möchten, verwenden Sie stattdessen die
structen) - Arrays beginnen am Index [1]
- Arrays können eine oder mehrere Dimensionen haben



![zwei Dimension Array mit expliziter Deklaration []](http://i.stack.imgur.com/6nHIJ.png)

