Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
Поиск по сайту

TOP-10 программ
Symantec Norton Ghost 9.0
Partition Magic 8.0.2 Pro
Xilisoft 3GP Video Converter v3.1.7.0616b
Norton AntiVirus 2005
Xilisoft 3GP Video Converter v2.1.52.831b
Антивирус Касперского Personal 5.0.303 beta 2
RAR Password Cracker 4.12
ABBYY PDF Transformer v1.00.820
MP3 To Ringtone Gold v3.02
Mobtime Cell Phone Manager v5.3.1
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
 

   Интернет технологии -> PHP -> Секреты PHP-функций для работы с массивами. Создание массивов


Секреты PHP-функций для работы с массивами. Создание массивов

Основное назначение массивов - быстрая обработка данных. Часто разработчики программного обеспечения выполняют с их помощью сортирование информации, манипулирование исходными данными и получение различных выборок из наборов данных. Бытует мнение, что функциональность массивов гораздо проще организовать с помощью применения "толстой" прослойки SQL-кода и обращения к внешним приложениям типа специализированных хранилищ данных. Конечно, такой подход позволяет более просто реализовать элементарные вещи, но вас может ждать небольшое разочарование заказчика в плане быстродействия всего приложения. Представьте себе наиболее часто выполняемые задачи при выводе информации в аналитических системах предприятий - сортировка фамилий сотрудников, выбор товаров в каком-либо ценовом пределе, формирование списка категорий торговых менеджеров вашей организации, хранение оперативных данных о курсе валют. Поскольку выполнение таких элементарных задач (обычно) требует наличия SQL-хранилищ исходной информации и обращения к базам данных, работоспособность и скорость ваших приложений часто зависят от надежности и быстродействия технологического решения SQL-хранилища. Действительно, в случае применения отказоустойчивой системы хранения данных, размещенной на нескольких серверах, использование хранилища данных типа MySQL представляет собой узкое звено всей системы. Представьте себе, что может произойти, если разнесенные рабочие места обращаются к единой информационной таблице с курсами валют, которую по какой-либо причине заблокировало другое неверно работающее приложение. Да и простое обращение сотен компьютеров к одной таблице может очень сильно повредить быстродействию всего процесса работы аналитической системы, написанной на основе использования единого SQL-хранилища данных.

Наверное, такие задачи встречаются в жизни среднего веб-разработчика достаточно редко, но и простое использование функций для работы с массивами в обычной "плоской" задаче очень часто позволяет увеличить быстродействие вашего приложения. Поскольку задачи увеличения скорости работы интерфейсов и обработки данных встречаются в программировании бизнес-логики сплошь и рядом, функции для работы с массивами применяются практически во всех мало-мальски известных языках программирования, которые используются при написании задач аналитического учета.

В большинстве случае использование массивов предлагает удобный способ для хранения однородных данных. PHP не представляет собой исключение из общего подхода. В этом языке поддерживаются все основные функции по работе с массивами. Несколько отличающийся подход к доступу к данным заключается в наличии нескольких типов функций. Одни из них позволяют проводить достаточно привычные операции вроде сортировки данных. Другие - более сложные, предназначенные для работы с ассоциативными (построенными по принципу размещения данных не по нумерологическому, а по строковому представлению индекса данных) массивами. Также есть специализированная группа функций для выполнения сложных и не часто используемых операций вроде рекурсивного прохода по дереву значений многомерного массива. Конечно, наличие массы функций - положительная характеристика средства разработки, но, забегая наперед, могу сказать, что именно наличие функций для работы с ассоциативной информацией делает использование массивов столь излюбленным средством многочисленных разработчиков веб-приложений на PHP.

Поскольку количество используемых в языке функций для обработки данных в массивах достаточно велико и сама документация по PHP не предусматривает никакого деления их по типам, необходима какая-то система анализа всего этого многообразия. Такая классификация позволит новичку представить весь функционал подсистемы работы с таким типом данных, а профессионалу четко выделить необходимый в конкретный момент метод. Весь функционал по работе с массивами в PHP можно разбить на следующие основные категории:

  • создание массивов;
  • вывод данных;
  • тестирование наборов данных;
  • добавление и удаление элементов массивов;
  • поиск информации;
  • выполнение операций наложения (умножения) матриц с данными;
  • определение параметров набора;
  • сортировка;
  • объединение, выделение и разделение данных.

Что такое массив? Традиционно - это набор групп данных, имеющих одни и те же характеристики и объединенных в общность путем присвоения отдельным частям данных ключевых индексов, позволяющих найти требуемые данные. Почему я употребляю термин "традиционно"? Дело в том, что в массиве можно разместить и совершенно разнотипные данные, если это кому-то будет нужно. В PHP работа с массивами строится на основании следующего принципа, который обеспечивает прозрачность всех методов для доступа к данным. Итак, каждый элемент массива данных состоит из двух частей - значения и ключа, который идентифицирует местоположение значения. Сам по себе ключ может быть цифровым и представлять собой классический (цифровой) номер элемента массива. На приведенном ниже рисунке вы увидите, как выглядит объявление массива в коде. Назначение массива - хранение списка городов.

Создание массива в PHP. "Рокировка" индексов и значений

Использованная форма объявления массива называется расширенной. Таким образом, вы задаете при объявлении также и набор значений, который хранится в самом массиве. Причем указывается также и значение ключа. Если задать вопрос, зачем нужно задавать значение ключа, то достаточно рассмотреть приводимый ниже пример, который показывает случай создания массива без присвоения ключей, а только с определением значений. Если обратить внимание на значения ключей, то можно увидеть, что они начинаются с нуля.

Создание неассоциативного массива

Использование ассоциативных массивов оправдано в том случае, если применение обычных массивов не имеет смысла. Такой вариант возможен, например, при построении среза данных о соответствии строкового названия валюты и ее курса на текущий момент в аналитической системе. В таком случае массив в виде RU=>0.67,USD=>5.03 имеет гораздо более понятное представление, чем, например, в виде 0=>0.67,1=>5.03. Конечно, можно возразить, что подобные задачи решаются применением реляционной базы, но зачем выполнять запросы к базе там, где это не нужно фактически. Действительно, гораздо проще выполнять инициализацию массива курсов валют, например, при создании PHP-класса, ответственного за обработку цен товаров, чем каждый раз включать в запрос данных из таблицы валют. Конечно, такая ситуация будет реальной, если курс валют фиксируется только на начало операционного дня. Однако даже такой пример показывает, что использование элементарного ассоциативного массива позволит ускорить критичную часть вашего кода.

Массивы в PHP могут быть как плоскими (одномерными), так и содержащими другие массивы (то есть многомерными). Пример объявления многомерного массива, содержащего названия улиц и городов, приведен на следующем рисунке.

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

Для доступа к данным различных типов массивов применяется синтаксическая конструкция языка, состоящая из квадратных скобок. К элементу ассоциативного массива можно обращаться только по значению ключа. Таким образом, попытка получить данные следующим способом: $towns_ua[0] - вернет пустое значение. Для обращения к данным многомерных массивов применяется выражение следующего вида: $towns_ua["Львов"]["Соборная"] - таким образом, например, удобно хранить почтовые индексы улиц в одном массиве данных. Существует также несколько необычный вид заполнения данных массива - без указания ключа вообще. На приведенном ниже рисунке видно, как можно заполнить массив несколькими значениями. Такая форма очень удобна для применения в именах переменных для веб-форм. Таким образом, просто назвав однотипные элементы онлайн-формы, например, как element[], можно ввести данные в массив (конечно, такой пример не учитывает современные требования безопасности и приводится только для демонстрации самой возможности).

Заполнение массива без применения ключей

Массивы играют важную роль при создании онлайн-приложений. В языке веб-программирования применение массива позволяет намного увеличить быстродействие и повысить безопасность приложения за счет использования бездисковых операций и вообще меньшего количества обращений к внешним приложениям. В этой статье рассмотрены элементарные вопросы, все же необходимые для начала работы с массивами. Конечно же, в столь небольшом изложении трудно перечислить все возможности массивов, но некоторое представление про всю сложность и красоту реализации этого механизма можно получить даже на его основе.

Автор: А. В. Кириллов
Источник: www.hostinfo.ru

Ссылки по теме
Внутренние функции
Обработка строк в РНР
PHP и всё такое...
Пишем PHP код, устойчивый к ошибкам
Полезные скрипты на PHP
Почтовые функции в РНР
Полезные функции для работы с файловой системой
 

Компьютерная документация от А до Я - Главная

 
Популярные книги

Практические работы по Excel на уроках информатики

Подробнее

Windows XP для всех

Подробнее

Самоучитель работы на компьютере Издание 9

Подробнее


 
Новости ИТ
04.12.2008  В Windows 7 запуск приложений Direct3D 10/10.1 будет возможен на CPU
04.12.2008  eGo BlackBelt и Encrypt - пара новых портативных HDD Iomega с зашитой данных
04.12.2008  A-DATA выпускает двух- и трёхканальные наборы памяти DDR3-1800+ в серии XPG Plus
04.12.2008  MOTOROKR EM35
04.12.2008  Шведский производитель ковриков для мышей выпустил игровую гарнитуру
04.12.2008  eGo BlackBelt и Encrypt - пара новых портативных HDD Iomega с защитой данных
04.12.2008  Вышла вторая бета-версия Windows Vista SP2
04.12.2008  Внешний SSD-накопитель с поддержкой eSATA и USB
04.12.2008  Флэшка OCZ со встроенным кард-ридером
04.12.2008  Весрия «ПАУ» 1.8.2 будет содержать новый функционал
04.12.2008  Компания «Русские Информационные Технологии» подготовила бета-версию программы «Печать конвертов!»
04.12.2008  Телефон премиум-класса с двумя SIM-картами
04.12.2008  High-end десктопы Asus Eee Box
04.12.2008  Видеокарта NVIDIA Quadro FX 4800 для профессионалов
04.12.2008  Экстремальные внешние HDD от Iomega
04.12.2008  MSI EX300 - 13.3 дюйма для развлечения
04.12.2008  SATA 3.0 появится в следующем году
04.12.2008  Mini-ITX-плата Zotac на основе логики NVIDIA и с поддержкой Wi-Fi
04.12.2008  Корпус NZXT Zero 2: улучшенное охлаждение и строгий дизайн
04.12.2008  Конвертеры: Xilisoft Video Converter v.5.1.7.1128
 
Полезно

 
Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100