coldfusion
Tableaux ColdFusion
Recherche…
Syntaxe
- ArrayNew (dimension, isSynchronized)
Paramètres
| prénom | La description |
|---|---|
| Dimension | Nombre de dimensions dans le nouveau tableau: 1, 2 ou 3 |
| est synchronisé | Si la valeur est false , crée un tableau non synchronisé. Lorsque la valeur est true , la fonction renvoie un tableau synchronisé. |
Remarques
Dans un tableau synchronisé, plus de deux threads ne peuvent pas accéder au tableau simultanément. Les autres threads doivent attendre que le thread actif termine son travail, ce qui entraîne des performances significatives.
Dans la version ColdFusion 2016, vous pouvez utiliser un tableau non synchronisé et laisser plusieurs threads accéder au même objet de tableau simultanément.
Création de tableaux
Créer des tableaux explicitement en utilisant ArrayNew ()
Déclarez un tableau avec la fonction ArrayNew. Spécifiez le nombre de dimensions en tant qu'argument.
- ArrayNew ( dimension ) crée un tableau de 1 à 3 dimensions.
- Les baies ColdFusion se développent dynamiquement à mesure que les données sont ajoutées.
- ArrayNew () renvoie un tableau.
Histoire
Introduit dans ColdFusion MX 6
Déclaration
CFML
<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>
CFScript Notez que dans une fonction, vous devez utiliser var scoping. Les versions antérieures de CF nécessitaient que var scoping soit la première chose d'une fonction; les versions ultérieures le permettent n'importe où dans une fonction.
<cfscript>
oneDimensionArray = ArrayNew(1);
public void function myFunc() {
var oneDimensionArray = ArrayNew(1);
}
</cfscript>
Après avoir créé le tableau, ajoutez des éléments en utilisant les index d'élément. L'indice Coldfusion Array commence à 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>
Utiliser ArrayAppend ()
Vous pouvez ajouter des éléments à un tableau en utilisant la fonction ArrayAppend(array, value) .
<cfscript>
ArrayAppend(oneDimensionArray, 1);
ArrayAppend(oneDimensionArray, 'one');
ArrayAppend(oneDimensionArray, '1');
</cfscript>
<cfdump> contenu du tableau à l'aide de <cfdump> :
<cfdump var="#oneDimensionArray#">
Résultats:
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>
Sortie du contenu du tableau en utilisant <cfdump>
<cfdump var="#twoDimensionArray#">
Résultat:
Chaque élément contient un autre tableau, qui stockera les valeurs.
Création implicite d'un tableau 1-D
Lors de la création implicite d'un tableau, les crochets ([]) entourent le contenu du tableau avec des séparateurs de virgules.
<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>
Cette instruction est équivalente aux quatre instructions utilisées pour créer le oneDimensionArray ci-dessus. Le résultat est le même en utilisant:
<cfdump var="#oneDimensionArrayImplicit#">
Créer implicitement un tableau 2D
<cfset twoDimensionArrayImplicit = [[ 1 , 2 ],[ 3 , 4 ],[ 5 , 6 ]]>
Ou:
<cfset firstElement = ["1", "2"]>
<cfset secondElement= ["3", "4"]>
<cfset thirdElement = ["5", "6"]>
<cfset twoDimensionArrayImplicit = [firstElement , secondElement, thirdElement]>
Sortie du contenu en utilisant
<cfdump var="#twoDimensionArrayImplicit#">
Déclaration explicite alternative
Vous pouvez également déclarer 1 tableau de dimension comme
<cfset oneDimensionArray = []>
<cfscript>
oneDimensionArray = [];
</cfscript>
Cette déclaration est la même que pour ArrayNew(1) .
Mais si vous essayez de déclarer le tableau à 2 dimensions comme
<cfset twoDimensionArray =[][]> //Invalid CFML construct
une erreur se produira lors du traitement de cette demande.
La déclaration suivante traitera la demande:
<cfset twoDimensionArray =[]>
mais la variable twoDimensionArray ne sera pas un tableau dans Array (ou 2-Dimension Array). Il contient en fait une structure dans Array.
<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#">
Résultat:
Tableau dans CFScript
<cfscript>
oneDimensionArray = ArrayNew(1);
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
<cfif IsDefined("oneDimensionArray")>
<cfdump var="#oneDimensionArray#">
</cfif>
Résultat:
En outre, nous pouvons déclarer un tableau à une dimension comme:
oneDimensionArray = [];
Sinon, CF a introduit WriteDump() partir de CF9 en tant que fonction équivalente à la <cfdump> qui peut être utilisée dans <cfscript> .
<cfscript>
WriteDump(oneDimensionArray);
</cfscript>
De même, pour le tableau à deux dimensions:
<cfscript>
twoDimensionArray = ArrayNew(2);
twoDimensionArray[1][1] = 1;
twoDimensionArray[1][2] = 2;
twoDimensionArray[2][1] = 3;
twoDimensionArray[2][2] = 4;
</cfscript>
<cfdump var="#twoDimensionArray#">
Résultat:
informations générales
Tout d'abord, des informations générales sur le comportement des tableaux dans Coldfusion par rapport aux autres langages de programmation.
- Les tableaux ne peuvent avoir que des index numériques (si vous souhaitez avoir un index de chaîne, utilisez plutôt
structs) - Les tableaux commencent à l'index [1]
- Les tableaux peuvent avoir une ou plusieurs dimensions



![deux tableau de dimension utilisant la déclaration explicite []](http://i.stack.imgur.com/6nHIJ.png)

