2012-08-31 4 views
3

Je cours Coldfusion8 et j'ai du mal à accéder à un tableau que j'ai défini.comment accéder aux éléments dans un tableau 2D dans Coldfusion?

Mon tableau est défini comme ceci:

Application.strConfig.respH = arrayNew(2); 
Application.strConfig.respH[1][1] = "s"; 
Application.strConfig.respH[1][2] = 127; 
Application.strConfig.respH[2][1] = "m"; 
Application.strConfig.respH[2][2] = 230; 
... 

entraînant ceci:

RESPH: 
[array] 
1) [array] 
    1) s 
    2) 127 
2) [array] 
    1) m 
    2) 230 

J'ai besoin pour obtenir les numéros par défaut en fonction d'une taille que je reçois sur une page. Donc, par exemple, quand je me retrouve avec m, j'ai besoin de respH valeurs pour m. En ce moment je suis en train ceci:

<cfscript> 
LOCAL.runner = "s,m,l,xl"; 
LOCAL.lt = ListGetAt(LOCAL.runner, LOCAL.i, ","); 
LOCAL.height = Application.strConfig.respH[ LOCAL.lt ]; 
</cfscript> 

Ce faisant, Coldfusion se plaint The value m cannot be converted to a number.

Question:
Comment puis-je accéder aux éléments de mon objet strConfig?

Merci de votre aide!

+1

Si vous devez rechercher des données avec une clé spécifique, n'utilisez pas de tableaux. Utilisez une structure. Avec les tableaux, vous devez faire une boucle pour trouver la clé correspondante. (CF9 + prend en charge 'ArrayFind') – Leigh

+0

Ya. Je le change juste en un objet comme ça: 'Application.strConfig.respH.s = 127' pour y accéder comme ceci:' Application.strConfig.respH [LOCAL.lt] '. Voyons si cela fonctionne. Voulez-vous que votre commentaire soit une réponse, alors je peux vérifier? – frequent

Répondre

3

(D'après les commentaires ...)

Si vous devez rechercher des données par une clé spécifique, ne pas utiliser des tableaux. Utilisez une structure. Avec les tableaux , vous devez effectuer une boucle pour trouver la clé correspondante. (CF9 + prend en charge ArrayFind)

+0

Merci. L'objet fonctionne. – frequent

Questions connexes