Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции Косьмин.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.69 Mб
Скачать

Тема: работа с массивами

1 Вопрос. Создание массива

МАССИВОМ наз упорядоченный набор данных (элементов), объединяемых общим именем. Обращение к элементам массива производится по индексу. Индекс м.б числовым или символьным.

Создавать массивы можно разными способами.

1 Простейший способ: рядом с именем переменной ставятся квадратные скобки, значение элементам массива придается оператором присваивания.

$MyArray[]=”Лена”;

Массиву можно добавлять аналогичным способом др элементы. PHP автоматически индексирует элементы массива, нумеруя их от нуля.

Доступ к значениям элементов массива осуществляется ч\з индексы.

$MyArray[0]

При создании массива элементы можно индексировать, т.е не с нуля и не по порядку.

Кроме числовых возможно применение символьных индексов.

2 Способ: массив создается по команде:

$ИмяМассива=array([индекс1=>]значение1[,[индекс2=>] значение2…])

При создании массивов можно использовать индексы разных типов. Если массив имеет символьный индекс, то обращаться к нему с помощью порядкового номера нельзя.

3 Способ- создание регулярных массивов:

Например нумерованный список

Создается с помощью ф-ции range(начало,конец,[шаг]­)

Начало –э то число или символ начала диапазона

Конец – число или символ конца диапазона

Шаг- соотв приращение ф-ции по умолчанию шаг имеет значение единица

Длина массива (кол-во его элементов) определяется ф-циями count(имя массива) или sizeof(имя массива)

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

Простейшим способом всегда можно дополнить существующий массив. Дополнения производятся либо в конец массива либо в указанный элемент.

Удаление элемента из массива: удаление всего массива unset(имя). При удалении элементов массива автоидексация не производится.

При обращении к несуществующему элементу массива выводится сообщение об ошибке. Для подавления вывода сообщения об ошибке используется @$имя

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

Элементы массива могут содержать данные разных типов. Элементами массива могут быть массивы.

Обращение к элементам двумерного массива производится: имя_массива[индекс уровня1][индекс уровня2]

Отображение значений массивов для просмотра структуры и значений элементов массива при отладке программы используется 2 функции: print_r() и var_dump()

Вывод значений элементов массива осуществляется оператором эха в цикле с предусловием:

<?

$MyArray(“Федор”,”Иванов”,125);

$i=0;

WHILE($i=<cont($MyArray)){

echo$MyArray[$i];

$i++;

}

?>

3 Вопрос. Операции над массивами

  1. Копирование массива

для копирования массива переменную содержащую массив следует присвоить к др переменной.

Пример:

<?

$a=array(5,2,4,3); копирование

$x=$a;// копирование

$a[2]=25;

echo$x[2];//4

echo$a[2];//25

?>

  1. сортировка массива –элементы массива хранятся в порядке их создания. Сортировать элементы можно одним из двух методов:

  • по индексу

  • по значению

Сортировка определяет организацию массива. Выполняется организация соотв ф-циями PHP.

ПО ЗНАЧЕНИЮ:

Сортировка по возрастанию значений элементов массива с числовыми индексами выполняется ф-цией sort(имя массива[,режим]) данная ф-ция возвращает значение истина при нормальном значении и ложь в противном случае.

Режим сортировки определяет способ сравнения элементов массива SORT_REGULAR. В данном случае элементы массива сравниваются без изменения их типов. Данное значение принято по умолчанию.

SORT_NUMERIC – элементы массива сравниваются как числа

SORT_STRING - элементы массива сравниваются как текстовые строки

SORT_LOCATE_STRING – элементы сравниваются как строки с учетом установленной лакали (места начала строки) – PHP5.0.2

При использовании ф-ции sort исходная связь – индекс значения теряется. Элементом отсортированного массива назначаются новые индексы. Эта ф-ция навсегда теряется исходную организацию массива.

Сортировка сохр связь индекс значения выполняется: assort(имя массива[,режим]) ф-ция ф-ция возвращает значение истина при удачном завершении и ложь в обратном случае. Элементы массива упорядочиваются по возрастанию их значений, но индексы сохр преждними.

Сортировка по убыванию значений элементов массива: rsort(имя массива[,режим])

arsort(имя массива[,режим])

ПО ИНДЕКСУ: для сортировки по индексу по возрастанию ksort(имя массива[,режим])

по убыванию krsort(имя массива[,режим])

ф-ции сортировки изменяют исходный массив а не возвращают новый

3. перемещение по массиву – может выполняться разными способами:

  • с помощью операторов цикла

while

do while

for

  • c помощью конструкции foreach (фореч)

  • с помощью спец ф-ций перемещения указателя на текущий элемент

foreach(массив as$значения){код действий над эл.массива};

foreach(массив as$индекс=>$значения){код обработки};

24.02.2012

Специальные ф-ции управляют положением указателя на элемент массива. Специальные функции:

current(Массив) – данная ф-ция не перемещает указатель, но возвращает текущее значение элементам массива.

next(Массив) – перемещает указатель на след элемент массива

pref(Массив) – перемещает указатель на предыдущий элемент массива

end(Массив) - перемещает указатель на последний элемент массива

reset(Массив) - перемещает указатель на первый элемент массива

По умолчанию указатель стоит на первом элементе массива.

Функции сканирование элементов массива next и pref могут вывести указатель за пределы массива, в рез-те чего выдается логическое значение false(ложь).

$X=next(MyArray);//

If($X= = = false){

echo”Выход за конец массива”;

}else{

echo$X;

}

4. запись значений элемента массива в переменные списка. Преобразование массива в список выполняет ф-ция: list(Список_Переменных)=Массив;

Разделителем в списке переменных явл запятая.

Список создает переменные списка, которым присваиваются элементы массива с числовыми индексами (нумеруемыми от нуля). Формирование списка производится в стэке магазинного типа, поэтому порядок элементов в списке будет противоположным, хотя индексы массивов сохранятся.

5. преобразование массива в текстовую строку

implode([разделитель не обязателен],Массив)

разделитель явл строкой символов, которая вставляется м\у элементами массива при объединении их в текстовую строку. Если разделитель опущен в качестве него применяется пустая строка. Ф-ция возвращает текстовую строку.

6. преобразование текстовой строки в массив

explode(разделитель, строка[,количество])

В данной ф-ции разделитель - это символьная строка разделяющая фрагменты строки. Кол-во указывает максимальное кол-во элементов в возвращаемом массиве.

Если в ф-ции разделитель в строке не содержится, то ф-ция возвращает единственный элемент массива. Если разделитель явл пустой строкой ф-ция возвращает булево(логическое) значение ложь.

7. прочие операции работы с массивами

ФУНКЦИЯ

ЗНАЧЕНИЕ

array_unique(Массив)

возвращает массив в полученный из указанного массива путем удаления повторяющихся элементов, т.е в массиве остаются только уникальные элементы

array_sum(Массив)

ф-ция возвращает сумму элементов массива указанного элемента

array_slice(Массив,n1,n2)

ф-ция возвращает часть исходного массива состоящего из n2 элементов начиная с элемента n1

array_merge(Массив1,Массив2..)

ф-ция возвращает массив объединяющий элементы массивов указанных в списке.

array_diff(Массив1,Массив2…)

ф-ция возвращает массив состоящий из тех элементов первого в списке массива, которых нет в остальных массивах

array_flipe(Массив)

возвращает массив построенный из указанного элемента массива путем перестановки местами индексов и значений

extract(Массив)

создает переменные из символьных индексов массива и присваивает им значения соотв элементов массива, возвращает кол-во созданных элементов

compact(Массив)

ф-ция возвращает массив созданный из указателей переменных, противоположна предыдущей ф-ции

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]