PDA

Просмотр полной версии : Двумерный массив


jurik_5
06.05.2009, 15:56
Стакнулся с такой проблемой, не получается правильно заполнить массив. Скрипт такого типа:

arr = [[]];
arr[0, 1] = "a";
arr[0, 2] = "b";
arr[0, 3] = "c";
arr[1, 1] = "a1";
arr[1, 2] = "b1";
arr[1, 3] = "c1";
for (var i = 1; i<4; i++) {
trace("arr 0,"+i+" = "+arr[0, i]);

}

for (var i = 1; i<4; i++) {

trace("arr 1,"+i+" = "+arr[1, i]);
}

Выводит
arr 0,1 = a1
arr 0,2 = b1
arr 0,3 = c1
arr 1,1 = a1
arr 1,2 = b1
arr 1,3 = c1


а надо, чтобы выводил

arr 0,1 = a
arr 0,2 = b
arr 0,3 = c
arr 1,1 = a1
arr 1,2 = b1
arr 1,3 = c1


уже перепробывал все варианты оформления кода (массива, [0][1], [[],[]]), и хелп листал и FAQ, ничего не помогло, может какую мелочь упустил.

Я бы мог обойтись двумя обычными массивами, но хотелось бы на будущее разобраться с многомерными.

Зарание благодарен.

iNils
06.05.2009, 16:01
Вы не правильно создаете двухмерный массив. Его нельзя создать просто объявив. Надо каждый элемент первого уровня сделать массивом, а у вас только первый элемент.
arr = [[], []];
arr[0][1] = "a";
arr[0][2] = "b";
arr[0][3] = "c";
arr[1][1] = "a1";
arr[1][2] = "b1";
arr[1][3] = "c1";
for (var i = 1; i < 4; i++) {
trace ("arr 0," + i + " = " + arr[0][i]);
}
for (var i = 1; i < 4; i++) {
trace ("arr 1," + i + " = " + arr[1][i]);
}

jurik_5
06.05.2009, 16:09
Спасибо iNils за разъяснение, Теперь работает.