Другие языки программирования и технологии

Не могу понять где элемент массива?

<?PHP

$ARRAY = Array // числовой. Ключи 0,1 и 2
(
Array('Сыр','Колбаса') , // числовой. Ключами являются 0 и 1
Array('key'=>'val' , 'key2'=>'val2') , // Ассоц. Ключи key и key2
Array('key3'=>'val3', 'Чипсы') // Тоже Ассоц. Ключи key3 и 0
);

// Для обращения к какому либо элементу многомерного массива, к примеру к val3
// следует обращаться так:
echo $ARRAY[2]['key3'];
// В массиве ARRAY обращаемся сначала к элементу номер 2 [ Array('key3'=>'val3', 'Чипсы') ]
// а там к элементу с ключом key3

?>
echo $ARRAY[2]['key3']; - не могу понять элемент 2 это чипсы?
И зачем обращаться ко второму элементу?
Чтобы понять многомерные массивы вам сначала нужно понять одномерные.. И такс.. урок начинается..
Допустим у нас есть следующий одномерный массив $arr = array('name', 'age', 'hobby'); который состоит из трёх элементов.. эти три элемента строки... name, age, hobby...чтобы вывести на экран первый элемент массива надо писать так echo $arr[0]; в квадратных скобках пишется индекс элемента... обычно индекс первого элемента 0..если индекс первого элемента 0 то индекс последнего будет количество элементов - 1...чтобы было легче понять попробуем вручную вывести все элементы массива.. echo $arr[0].$arr[1].$arr[2].$arr[3]; на экране мы увидим name, age и hobby..вы подумаете.. а как же $arr[3]??Элемент с индексом 3 в нашем массиве нет.. поэтому ничего не увидим.. итог.. индес первого элемента по умолчанию 0...но теперь давайте изменим порядок.. можно сделать так чтобы нумерация началась с 1 а не 0...для этого немножко изменим массив

$arr = array(1=>'name', 'age', 'hobby');

теперь если напишем $arr[0] то ничего не увидим.. зато если писать $arr[1]; то увидим name то есть первый элемент массива... Что мы узнали?

1)Нумерация массивов по умолчанию начинается с нуля
2)Если нумерация массива начинается с нуля то для того чтобы узнать индекс последнего элемента, достаточно из количества элементов массива вычитать единицу

Теперь перейдём к ассоциативным массивам.. в таких массивах нет нумерации.. Пример простого ассоциатвного массива

$arr = array('name' => 'Pentagon', 'age' => 18, 'hobby' => 'programming');

Для того чтобы вывести значение name надо писать вот так $arr['name'];
В таком массиве name это ключ а Pentagon значение этого ключа.. чтобы вывести значение ключа надо писать$имя_массива [ключ] после этого мы увидим значение.. чтобы было понятно давайте выведем остальные значения из массива вручную

echo $arr['name'].' '.$arr['age'].' '.$arr['hobby'];

В результате мы увидим что-то подобное - Pentagon 18 programming

Итог:
Чтобы вывести значение какого нибудь ключа в квадратных скобках надо писать имя ключа.. пример echo $arr['name'];

Многомерные массивы..

Ярким примером многомерного массива является например здание.. Здание это массив этажей.. а этаж в свою очередь массив квартир.. а квартира массив комнат.. допустим нам надо посмотреть первую комнату в первом квартире третьего этажа.. что мы должны делать.. сначала подняться на третий этаж, потом войти в первую квартиру ну а потом в первую комнату.. чтобы понять перейдём к php и создадим многомерный массив

$numbers = array(
array(1, 2, 3),
array(4, 5, 6),
array(7, 8, 9)
);

Мы создали многомерный массив numbers..в этом массиве три дочерних массива то есть элемента а у каждого дочернего массива 3 элемента.. матрица 3 на 3 короче.. на этом проекте часто встречаются подобные вопросы для обработки матриц но это совсем другая история.. и такс.. мы знаем что индекс первого элемента в массиве обычно начинается с 0..давайте выведем первый элемент первого массива.. для этого напишем так

echo $numbers[0][0];//1

Мы увидим 1..урааа у нас получилось.. а что мы сделали.. сначала интерпратор обратится к первому элемента массива.. первый элемент массива это - $numbers[0]..если оставить так то мы увидим Array..понятно почему? Потому что первый элемент это массив.. для этого мы написали вторую пару квадратных скобок в итоге у нас получилось такое $numbers[0][0]..после этого интерпратор смотрит на нашу писанину.. он сначала обратиться к первому элементу нашего многомерного массива.. он отвечает.. "я обратился дяденька.. это массив.. вывести? " а наша вторая пара квадратных скобок говорит "нет.. выведи пожалуйста первый элемент этого массива"...интерпратор отвечает "Прошу.. 1 это первый элемент первого массива в многомерном массиве numbers"

Урок подошёл к концу.
Алексей Духовников
Алексей Духовников
9 098
Лучший ответ
Нет, это "val3" . А чипсы, по Вашей логике, это $ARRAY[2][1] .
print_r($ARRAY);

Похожие вопросы