Изучаем PHP программирование

   Search   

Русская версия | English version   

Скрипты :: Секреты профессионалов :: Link :: FAQ   Пишите письма  



 

главная :: основы PHP

Массивы

Массив представляет собой список однотипных элементов. Существует два типа массивов, различающиеся по способу идентификации элементов. В массивах первого типа элемент определяется индексом в последовательности. Массивы второго типа имеют ассоциативную природу, и для обращения к элементам используются ключи, логически связанные со значениями. Впрочем, на практике операции с массивами обоих типов выполняются сходным образом. По размерности массивы делятся на одномерные и многомерные. Одномерные индексируемые массивы При обращении к элементам одномерных индексируемых массивов используется целочисленный индекс, определяющий позицию заданного элемента. Обобщенный синтаксис элементов одномерного массива: $имя[индекс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"; В РНР существует множество функций для создания массивов и операций с ними — эта тема настолько обширна, что заслуживает отдельной главы. Работа с массивами в РНР подробно описана в главе 13

Designed by Fedin
All right reserved
2003-2004
Hosted by uCoz