Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WEB - Лабораторная работа_3 - PHP.pdf
Скачиваний:
89
Добавлен:
26.03.2015
Размер:
232.72 Кб
Скачать

Лабораторная работа №3 Массивы и списки в PHP

1. Массивы и списки.

Понятие массива

Массив — это упорядоченный набор данных. Каждый элемент массива имеет индекс или ключ. Индекс (ключ) служит для однозначной идентификации элемента внутри массива. В одном массиве не может быть двух элементов с одинаковыми индексами.

Работать без массива не очень удобно, думаю, вы и сами это понимаете. Существует ряд задач, где без использования массива просто не обойтись. Примером может послужить простой список друзей. Не будете же вы создавать 20 переменных, содержащих имена ваших друзей? Гораздо рациональнее создать один массив, содержащий 20 элементов.

Если вы программировали на С или Pascal, то знаете, что длина массива ограничена. При этом, если вы наперед не знаете, сколько элементов будет содержать ваш массив, значит вам нужно использовать динамические структуры (список, стек, очередь). В PHP все гораздо проще — длину массива не нужно задавать при объявлении массива, длина будет автоматически увеличена при добавлении нового элемента в массив. Все это становится возможным только благодаря тому, что PHP — интерпретатор, а не компилятор.

Очень важной особенностью PHP является то, что он, в отличие от других языков, позволяет создавать массивы любой сложности непосредственно в теле программы (сценария). Это бывает очень полезным, когда требуется создать массив, на основе некоторых, заранее неизвестных параметров.

Рассмотрим простейший способ инициализации массива:

$Реор1е[0]="Коля"; $ People[l]="Bитя"; $People[2]="Дима"; $People[3]="Марк";

PHP узнает о том, что создается массив по квадратным скобкам. В квадратных скобках указывается индекс (ключ) отдельного элемента массив.. В приведенном примере мы объявили массив $Реор1е, состоящий из четырех элементов. Однако в дальнейшем нам никто не помешает инициализировать еще один (или сколько нужно) новый элемент массива. В PHP размер массива не задается явно, как в других языках программирования

Обратиться к элементу массива можно по имени массива и индексу элемента внутри массива: echo $People[l]; Зная количество элементов массива, мы можем вывести все элементы массива с помощью цикла: for ($1=0; $1<количество; $i++) echo "$Рeople[$i] <br>"; Если мы не знаем точное количество элементов массива, можно использовать функцию count(). Эта стандартная функция определяет размер массива, то есть количество элементов в нем. Соответственно, с использованиеу. функции

count() вышеприведенный цикл выглядит следующим образом: for ($i=0; $i<count($People); $i++) echo "$People[$i] <br>";

Понятие списка

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

Не знаю как вам, но мне удобнее создавать списки без указания индекса — пусть это сделает за меня PHP. Ведь я могу ненароком указать уже существующий индекс.

Кроме того, такое автоматическое создание массивов удобно при записи текстового файла в массив для последующей обработки.

Вот пример автоматического создания массива:

$Реор1е[]="Коля"; $Реор1е[]="Витя"; $Реор1е[]="Дима";

При этом PHP начнет нумерацию с наименьшего незанятого значения индекса. В частности, если переменная $Реор1е только сейчас инициализируется, то нумерация будет начата с нуля. В дальнейшем, с каждым новым элементом массива индекс будет увеличиваться на единицу.

Как видите все просто и удобно — не нужно указывать индексы. Однако, это как раз тот случай, когда мы не знаем точного числа элементов в массиве.

Соответственно, при работе с такими массивами целесообразно использовать функцию countQ, которая определяет количество элементов в массиве.

Рассмотрим небольшой пример — чтение текстового файла в массив. Забегая наперед, скажу, что функция fopen() используется для открытия файла, функция feof() истинна, если достигнут конец файла, а функция fgets() читает строку из файла.

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

// Открываем файл

?f = fopen("file.txt", "rt") or die("Ошибка");

//Читаем построчно while(Ifeof($f) )

{

//Заносим новый элемент (строку, прочитанную из файла)

//в конец массива

SFile[ ] = fgets($f,50);

}

// Закрываем файл fclose($f);

2. Ассоциативные массивы

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

$Реор1е["Иванов"] = "Иван"; $Реор1е["Сидоров"] = "Николай"; $Реор1е["Петров" ] = "Петр";

Доступ к элементам ассоциативных массивов осуществляется так же, как и к элементам обыкновенных массивов, и называется доступом по ключу:

echo $People["Иванов"];

3. Инструкции list()

Предположим, что у нас есть массив, состоящий из трех элементов:

$Реор1е[0] = "Иван"; $Реор1е[1] = "Николай";

Соседние файлы в предмете Программирование для Web