2012-08-31 3 views
3

Я бегу Coldfusion8 и борюсь за доступ к массиву, который я установил.Как получить доступ к элементам в 2D-массиве в ColdFusion?

Мой массив задается следующим образом:

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; 
... 

в результате этого:

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

Мне нужно получить номера по умолчанию на основе размера я получаю на одной странице. Так, например, когда я заканчиваю m, мне нужно получить respH значения для m. Сейчас я пытаюсь это:

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

Это, Coldfusion жалуется The value m cannot be converted to a number.

Вопрос:
Как получить доступ к элементам в моем strConfig объекте?

Спасибо за помощь!

+1

Если вам нужно искать данные по определенному ключу, не используйте массивы. Используйте структуру. С массивами вы должны зацикливаться, чтобы найти соответствующий ключ. (CF9 + поддерживает 'ArrayFind') – Leigh

+0

Ya. Я просто изменяю его на такой объект: 'Application.strConfig.respH.s = 127' для доступа к нему следующим образом:' Application.strConfig.respH [LOCAL.lt] '. Посмотрим, работает ли это. Вы хотите ответить на свой комментарий, чтобы я мог проверить? – frequent

ответ

3

(Из комментариев ...)

Если вам нужно искать данные по определенному ключу, не использовать массивы. Используйте структуру. С помощью массивов вы должны выполнить цикл, чтобы найти соответствующий ключ. (CF9 + поддерживает ArrayFind)

+0

Спасибо. Объект работает. – frequent

Смежные вопросы