трехмерные массивы
Попробовал вывести массив:
Код:
for ($i=0,$x=0; $x<16; $x++) { |
потому, что:
1. массив трехмерный :) 2. если написать $chars[$i][$i] — то ключи будут только такими: $chars[0][0]; $chars[1][1]; $chars[2][2] и т.д. а чтоб они перебирались, во втором массиве счетчик идет для первых индексов, а в третьем — для вторых, и тогда получится: $chars[0][0]; $chars[0][1]; $chars[0][2] ... $chars[1][0]; $chars[1][1]; $chars[1][2] ... $chars[2][0]; $chars[2][1]; $chars[2][2] ... т.е. берем сначала первый индекс (например, 0), выводим всё, что есть с ним: 0-0, 0-1, 0-2 потом второй и т.д. |
То есть нужно перейти к счетчику во втором форе, а к третему фору, нужно сразу 2 счетчика? Почему?
|
да, только в третьем форе уже три счетчика (как у тебя в примере).
$i — первый счетчик для: $chars[i] — первое "измерение" массива $j — второй для: $chars[i][j] — второе "измерение" массива $k — третий $chars[i][j][k] — третье "измерение" массива выполняются они так: $i = 0 : { $j = 0 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } $j = 1 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } $j = 2 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } ... $j = 9999 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } } $i = 1 : { $j = 0 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } $j = 1 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } $j = 2 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } ... $j = 9999 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } } $i = 2 : { $j = 0 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } $j = 1 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } $j = 2 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } ... $j = 9999 : { $k = 0; $k = 1; $k = 2; .... $k = 99999; } } .... |
Пишутся квадратные скобки во втором, третем форе и дальше - это означает что мы получаем доступ к вложенному массиву через его счетчик?
|
Цитата:
|
Доступ к внутреннему массиву в циклве фор, мы полчаем через индекс массива?
|
Цитата:
смысл в этом: сначала берем $chars[i=0] — смотрим, что у него внутри :) натыкаемся на $chars[i=0][j=0] — смотрим также, что там у него есть :) и обращаемся уже к $chars[i=0][j=0][k=0]; $chars[i=0][j=0][k=1] ... и т.д. как закончились k, берем $chars[i=0][j=1] и в нем опять смотрим, что есть... как закончились j, берем $chars[i=1] и начинаем всё заново, пока у нас есть индексы ) |
Часовой пояс GMT +3, время: 13:31. |