Интересует меня такой вопросик я задаю массив 2х мерный к примеру
$d['1']['werwer']
$d['1']['wr']
$d['2']['wer']
$d['2']['r']
$d['n']['']
Так вот будут ли обрабатываться при обращение к данным масива $d['2'] данные остальных массивов ( $d['1']...$d['n'][''])????
про Многомерные массивы..
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Duncon,
вопрос в том: будешь ли ТЫ обрабатывать остальные данные, или нет :-)
Твоя переменная $d - это всего лишь указатель на ячейку памяти, не более.
вот тебе одномерный массив:
двухмерный может быть реализован двумя способами:
(считаем для простоты, что d указывает на адрес 0).
Первый способ: ссылка на ссылку:
Второй способ: смещение + смещение
/*
Скорей всего, если используется первый способ,
то синтаксис языка будет d[ i ][ j ]
, а если второй d[i,j],
но это лишь предположение.
*/
В любом случае, как ты сам видишь,
для получения значения в массиве нужно всего лишь
просумировать i+j+..
добавить к d
и взять значение из ячейки с полученым адресом.
Так как ты думаешь, будут ли обрабатываться остальные данные? ;-)
вопрос в том: будешь ли ТЫ обрабатывать остальные данные, или нет :-)
Твоя переменная $d - это всего лишь указатель на ячейку памяти, не более.
вот тебе одномерный массив:
Код: Выделить всё
----
| d0 | <- d
| d1 |
| d2 |
| d3 |
----
(считаем для простоты, что d указывает на адрес 0).
Первый способ: ссылка на ссылку:
Код: Выделить всё
--------
0: | d0 = 2 | <- d + (i = 0) = 0
1: | d1 = 4 | <- d + (i = 1) = 1
--------
-----
2: | d00 | <- (d0 + (j = 0)) = 2
3: | d01 | <- (d0 + (j = 1)) = 3
----
-----
4: | d10 | <- (d1 + (j = 0)) = 4
5: | d11 | <- (d1 + (j = 1)) = 5
-----
Второй способ: смещение + смещение
Код: Выделить всё
-----
0: | d00 | <- d + j + i*max(j) = 0 + 0*2 = 0
1: | d01 | <- d + j + i max(i) = 1 + 0*2 = 1
2: | d10 | <- d + j + i max(i) = 0 + 1*2 = 2
3: | d11 | <- d + j + i max(i) = 1 + 1*2 = 3
----
Скорей всего, если используется первый способ,
то синтаксис языка будет d[ i ][ j ]
, а если второй d[i,j],
но это лишь предположение.
*/
В любом случае, как ты сам видишь,
для получения значения в массиве нужно всего лишь
просумировать i+j+..
добавить к d
и взять значение из ячейки с полученым адресом.
Так как ты думаешь, будут ли обрабатываться остальные данные? ;-)
Блин Oscar, залечил, я не спрашивал как создавать массивы, меня больше волнует как они обрабатываются да забыл упомянуть мы о PHP говорим..
Так вот если это $d указатель на ечейку памяти значит весь масив обработтан и уже там!!!
Так вот если это $d указатель на ечейку памяти значит весь масив обработтан и уже там!!!
[syntax=Delphi] [/syntax]