Массив
представляет собой список однотипных элементов. Существует два типа массивов,
различающиеся по способу идентификации элементов. В массивах первого типа элемент
определяется индексом в последовательности. Массивы второго типа имеют ассоциативную
природу, и для обращения к элементам используются ключи, логически связанные со
значениями. Впрочем, на практике операции с массивами обоих типов выполняются
сходным образом. По размерности массивы делятся на одномерные и многомерные. Одномерные
индексируемые массивы При обращении к элементам одномерных индексируемых
массивов используется целочисленный индекс, определяющий позицию заданного элемента. Обобщенный
синтаксис элементов одномерного массива: $имя[индекс1]; Одномерные
массивы создаются следующим образом: $meat[0] = "chicken"; $meat[l]
= "steak"; $meat[2] = "turkey"; При выполнении
следующей команды: print $meat[1]: в браузере выводится строка steak При
создании массивов также можно воспользоваться функцией array (). Массив $meat
из предыдущего примера создается командой $meat = аrrау("chicken",
"steak", "turkey"); Приведенная выше команда pri nt
приводит к тому же результату - выводу строки steak. Чтобы включить новый
элемент в конец массива, можно просто присвоить значение переменной массива без
указания индекса. Следовательно, массив $meat можно создать еще одним способом: Smeat[]
= "chicken"; $meat[] = "steak"; Smeat[] = "turkey"; Одномерные
ассоциативные массивы Ассоциативные массивы особенно удобны в ситуациях,
когда элементы массива удобнее связывать со словами, а не с числами. Предположим,
вы хотите сохранить в массиве лучшие сочетания вин и блюд. Проще всего было бы
хранить в массиве пары <ключ/значение> - например, присвоить сорт вина названию
блюда. Самым разумным решением будет использование ассоциативного массива: Spairings["zinfandel"]
= "Broiled Veal Chops"; $pairings["merlot"] = "Baked
Ham"; $pairings["sauvignon"] = "Prime Rib"; $pairings["sauternes"]
= "Roasted Salmon"; Ассоциативный массив заметно экономит время
и объем программного кода, необходимого для вывода определенных элементов массива.
Допустим, вы хотите узнать, с каким блюдом лучше всего идет <Мерло>. Нужная
информация выводится простой ссылкой на элемент массива $pairings: print $pairings["merlot"];
// Выводится строка "Baked Ham" Ассоциативные массивы также можно создавать
функцией РНР аггау(): Spairings = аrrау( zinfandel => "Broiled
Veal Chops", merlot => "Baked Ham", sauvignon =>
"Prime Rib", sauternes => "Roasted Salmon"); Отличается
только способ создания массива pairings, а функциональные возможности остаются
без изменений. Многомерные индексируемые массивы Многомерные индексируемые
массивы работают практически так же, как и их одномерные прототипы, однако элементы
в них определяются несколькими индексами вместо одного. Теоретически размерность
индексируемого массива не ограничивается, хотя в большинстве приложений практически
не встречаются массивы с размерностью выше 3. Обобщенный синтаксис элементов
многомерного массива: $имя[индекс1][индекс2]..[индексN]; Пример ссылки
на элемент двухмерного индексируемого массива: $position = $chess_board[5][4]; Многомерные
ассоциативные массивы Многомерные ассоциативные массивы также существуют
в РНР (и приносят определенную пользу). Допустим, в массиве $раirings из предыдущего
примера должна храниться информация не только о сорте, но и о производителе вина.
Это можно сделать следующим образом: $pairings["Martinelli"]["zinfandel"]
= "Broiled Veal Chops"; $pairings["Beringer"]["merlot"]
= "Baked Ham"; $pairings["Jarvis"]["sauvignon"]
= "Prime Rib"; $pairings["Climens"]["sauternes"]
= "Roasted Salmon"; Смешанное индексирование В многомерных
массивах допускается смешанное индексирование (числовое и ассоциативное). Допустим,
вы хотите расширить модель одномерного ассоциативного массива для хранения информации
об игроках первого и второго состава футбольной команды. Решение может выглядеть
следующим образом: $Buckeyes["quarterback"] [1] = "Bellisari"; $Buckeyes["quarterback"]
[2] = "Moherman": $Buckeyes["quarterback"] [3] = "Wiley"; |