Similar presentations:
Функции PHP для работы с массивами. (Лекция 4)
1.
Лекция №4Функции PHP для работы с массивами
Жеретинцева Наталья Николаевна к.т.н., доцент кафедры АИС МИИТ
МГУ им. Г. И. Невельского
2.
Функции языка PHPМассивы и механизм их использования в значительной степени
повышают эффективность программ на PHP. Научившись работать
с массивами, очень удобно сохранять и обрабатывать различные
данные сложных структур. Массив – это набор значений, скрытых
под одним именем различимых индексом, это упорядоченное
отображение, которое устанавливает соответствие между
значением и ключом. РНР предоставляет большой выбор средств
удобной работы с массивами. Число (так называемый индекс)
нужно заключать в квадратные скобки.
Выбирая имя для массива, необходимо учесть, имя, не совпало
с именем другой переменной, так как они разделяют общее
пространство имен. Создание переменной с тем же именем, что и
у существующего массива, приведет к удалению массива без
вывода каких-либо предупреждений.
Функции PHP
2
3.
Функции языка PHPМассив в PHP это упорядоченное отображение, которое
устанавливает соответствие между значением и ключом. Этот тип
оптимизирован в нескольких направлениях.
Поэтому можно использовать его как собственно массив,
список (вектор), хэш-таблицу (являющуюся реализацией карты),
словарь, коллекцию, стэк, очередь. Так как значением массива
может быть другой массив PHP, можно также создавать деревья и
многомерные массивы.
Получить доступ к конкретному значению можно по его номеру
или текстовой строке, т.е. индексом может быть номер массива
или текстовая строка.
Язык PHP поддерживает как индексные, так и ассоциативные
массивы.
Функции PHP
3
4.
Функции языка PHPИндексные массивы обеспечивают доступ к своим элементам
по номеру: $i[0] = 12; $i[1]=скрипка”;
В ассоциативных массивах каждый элемент массива
связывается с определенным уникальным ключом:
$товар["цвет"] = "синий ";
$товар["вес "] = "17 ";
Массивы могут быть и смешанного типа – часть элементов
индексируется по индексу, часть – по ключу.
Как правило, элементы в массиве указываются по номеру,
причем нумерация начинается с нуля. Причем нужно помнить, что
номер последнего элемента на 1 меньше, чем количество
элементов.
Массивы, индексами которых являются строки, начиная с нуля,
называются ассоциативными. Индексы ассоциативных массивов
называются ключами.
Функции PHP
4
5.
Функции языка PHPДля присвоения значений ключу используется конструкция =>.
К ассоциативному массиву можно обратиться по имени. Ключ (key)
может быть либо типа integer, либо типа string. Значения (value)
может быть любого типа. Параметр key является необязательным.
Если он не указан, PHP будет использовать предыдущее
наибольшее значение ключа типа integer, увеличенное на 1.
Создание массива
Массив (тип array) может быть создан языковой конструкцией
array(). В качестве параметров она принимает любое количество
разделенных запятыми пар key => value (ключ => значение).
<?php
$mas = array(
"f" => "Иванов",
"i" => "Иван",
"o" => "Иванович"
); ?>
Функции PHP
5
6.
Функции языка PHPПараметр key является необязательным. Если он не указан, PHP
будет использовать предыдущее наибольшее значение ключа типа
integer, увеличенное на 1.
В PHP длину массива не нужно задавать при объявлении
массива, длина будет автоматически увеличена при добавлении
нового элемента в массив. Простейший способ инициализации
массива:
$people[0] = "Коля";
$people[1] = "Витя";
$people[2] = "Дима";
$people[3] = "Марк";
Язык PHP определяет массив по квадратным скобкам. В
квадратных скобках указывается индекс (ключ) отдельного
элемента массива. В приведенном примере массив $people,
состоящий из четырех элементов. В PHP размер массива не
задается явно.
Функции PHP
6
7.
Функции языка PHPОбратиться к элементу массива можно по имени массива и
индексу элемента внутри массива:
echo $people[1];
Зная количество элементов массива, можно вывести все
элементы массива с помощью цикла:
for ($i=0; $i<количество; $i++)
echo people[$i]. "<br>";
Если неизвестно количество элементов массива, можно
использовать функцию count(). Эта стандартная функция
определяет размер массива, то есть количество элементов в нем.
Соответственно:
for ($i=0; $i<count($people); $i++)
echo "$people[$i] <br>";
Функции PHP
7
8.
Функции языка PHPСоздание/модификация с помощью синтаксиса квадратных
скобок. Существующий массив может быть изменен явной
установкой значений в нем. Это выполняется присвоением
значений массиву array с указанием в скобках ключа.
Массивы, индексами которых являются числа, начинающиеся с
нуля без пропусков, называются списками. С технической точки
зрения разницы между массивами и списками нет.
Кроме того, вы можете опустить ключ. В этом случае к имени
переменной добавить пустую пару скобок ([]). Синтаксис:
$arr[key] = value;
$arr[] = value;
Если массив $arr еще не существует, он будет создан. Таким
образом, это еще один способ определить массив array.
Необходимо всегда заключать в кавычки строковый литерал в
индексе ассоциативного массива. К примеру, пишите $foo['bar'], а
не $foo[bar].
Функции PHP
8
9.
Обход массива в циклеОператор цикла foreach осуществляет последовательный
перебор всех элементов массива. Он работает только с массивами
и объектами, а в случае его использования с переменными других
типов или неинициализированными переменными будет
сгенерирована ошибка. Есть два вида синтаксиса для данного
цикла. Первый вид синтаксиса выглядит следующим образом:
<?php
foreach ($array as $value)
{
инструкции
}
?>
Цикл будет перебирать заданный массив $array (вместо
$array подставляется название массива). На каждой итерации
значение текущего элемента присваивается переменной $value
(можно указать любое другое имя переменной).
Функции PHP
9
10.
Обход массива в циклеОператор цикла foreach очень удобен, поскольку сам
выполняет обход и чтение всех элементов массива, пока не будет
достигнут последний элемент.
Он позволяет не держать постоянно в памяти тот факт, что
индексация массивов начинается с нуля, и никогда не выходит за
пределы массива, что делает конструкцию цикла очень удобной и
помогает избежать распространенных ошибок.
Посмотрим, как он работает на примере:
<?php
$my_arr = array(1, 2, 3, 4, 5);
foreach ($my_arr as $value)
{
echo $value. " ";
}
?>
Функции PHP
10
11.
Обход массива в циклеВторой вид синтаксиса foreach, выглядит так:
<?php
foreach ($array as $key => $value)
{
инструкции
}
?>
При использовании данной формы синтаксиса на каждой
итерации дополнительно присваивается значение текущего ключа
переменной $key (можно указать любое другое имя переменной):
<?php
$my_arr = array(1, 2, 3, 4, 5);
foreach ($my_arr as $key => $value) {
echo "[$key] => ", $value, "<br>";
}
?>
Функции PHP
11
12.
Обход массива в циклеМожно создавать массивы, используя цикл do …while:
<?php
$array = array();
$i = 0;
do {
$array[] = ++$i;
} while ($i < 10);
print_r ($array);
?>
В таблице 4.3 приведены некоторые функции работы с
массивами. Более полный список функций приведен по адресу:
https://php.net/manual/ru/ref.array.php
Функции PHP
12
13.
Перечень функций работы с массивамиФункция
Назначение
Фрагменты кода
<?php
array_count_ Подсчитывает
values()
количество
всех $array = array(1, "hello", 1,
"world", "hello");
значений
массива,
print_r(array_count_values($a
возвращает массив, rray)); ?>
ключами
которого Результат
выполнения
являются
значения данного примера:
массива
input,
а Array
значениями частота (
повторения значений [1] => 2
[hello] => 2
input.
[world] => 1
)
Функции PHP
13
14.
Перечень функций работы с массивамиФункция
Назначение
Фрагменты кода
array_chunk( Разбивает массив <?php
$input, $size) input на несколько $input_array = array
('a','b','c','d','e');
частей размером
print_r(array_chunk($input_array,
size.
2));
print_r(array_chunk($input_array,
2, true));
?>
Результат выполнения примера:
Array (
[0]=>Array([0]=>a[1]=>b)
[1]=>Array([0]=>c[1]=>d)
[2]=>Array([0]=>e) )
Функции PHP
14
15.
Перечень функций работы с массивамиФункция
Назначение
Фрагменты кода
array_fill(int Заполняет
массив <?php
$num1, int количеством
значений $a = array_fill(5,6,'b');
$b = array_fill(-2,4,'p');
$numN,
value, начиная с ключа
print_r($a); print_r($b); ?>
$value )
num1.
Результат выполнения :
Array ([5]=>b [6]=>b [7]=>b
[8]=>b [9]=>b [10]=>b)
Array ([-2]=>p [0]=>p [1]=>p
[2]=>p)
Функции PHP
15
16.
Перечень функций работы с массивамиФункция
Назначение
Фрагменты кода
array
Создает array, ис- <?php
array_combine пользуя
значения $k = array(1,2,3);
$v =array('R','G','B');
(array
$keys, массива keys в ка$rgb = array_combine($k,$v);
array $values) честве ключей и зна- print_r($rgb); ?>
чения массива values Результат выполнения:
в качестве значений. Array ([1]=>R [2]=>G [3]=>B)
range ($start, Создает
массив, <?php
foreach (range(0, 10, 2) as $a)
$end [, $step = содержащий
{ echo $a."<br>"; $b[]=$a; }
1])
диапазон элементов.
foreach ($b as $key => $val)
$start начало, $end { echo "b[".$key."]=".$val."\n";
конец, $step шаг. } ?>
Результат:0 2 4 6 8 10
b[0]=0 b[1]=2 b[2]=4 b[3]=6
Функции PHP
b[4]=8 b[5]=10
16
17.
Перечень функций работы с массивамиФункция
Назначение
Фрагменты кода
<?php
array
Возвращает
array_count_value ассоциативный $a=array(1,'red',1,'blue',2,
'green',2,'black');
s (array $input )
массив
со
print_r(array_count_values($a)
значениями input );
в
качестве ?>
ключей
и
их Результат
выполнения
количества
в примера:
Array([1]=>2 [red]=>1
качестве
[blue]=>1 [2]=>2 [green]=>1
значений.
[black]=>1)
Функции PHP
17
18.
Перечень функций работы с массивамиФункция
Назначение
Фрагменты кода
array array_merge Сливает элементы <?php
(array $array1 [, массивов
таким $a=array('груша','банан');
$b=array('черешня','вишня');
array $... ] )
образом,
что
$result=array_merge((array)$a,
значения
одного (array)$b);
массива
print_r($result);
присоединяются к ?>
Результат
выполнения
концу
примера:
предыдущего.
Array([0]=>груша [1]=>банан
[2]=>черешня [3]=>вишня)
Функции PHP
18
19.
Перечень функций работы с массивамиФункция
сount($array)
Назначение
Фрагменты кода
<?php
Подсчитывает
$a = array(7,2,9,1,5,12,11);
количество
print_r($a);
элементов массива.
echo '<br>';
$n=count($a);
echo "n=".$n;
Результат выполнения :
Array([0]=>7 [1]=>2 [2]=>9
[3]=>1 [4]=>5 [5]=>12 [6]=>11)
n=7
Функции PHP
19
20.
Перечень функций работы с массивамиФункция
sort($array);
Назначение
Фрагменты кода
Эта
функция <?php
сортирует массив. $a = array(7,2,9,1);
print_r($a); echo '<br>';
После завершения
sort($a);
работы
функции foreach ($a as $key => $val)
элементы массива {
будут расположены echo "a[".$key."]=".$val."\n";
в
порядке }
?>
возрастания.
Результат
выполнения
примера:
Array([0]=>
7[1]=>2[2]=>9[3]=>1)
a[0]=1 a[1]=2 a[2]=7 a[3]=9
Функции PHP
20
21.
Перечень функций работы с массивамиФункция
rsort($array);
Назначение
Фрагменты кода
Сортирует массив в <?php
обратном порядке. $a = array(7,2,9);
print_r($a); echo '<br>';
rsort($a);
foreach ($a as $key => $val)
{
echo "a[".$key."]=".$val."\n";
}
?>
Результат
выполнения
примера:
Array([0]=>7[1]=>2[2]=>9[3]=>
1)
a[0]=9 a[1]=7 a[2]=2 a[3]=1
Функции PHP
21
22.
Задания№
Задание
1
Создать массив $a с диапазоном элементов от 0 до 100 с шагом 20.
Отсортировать массив по убыванию. Вывести первоначальный массив и
отсортированный с индексами.
Создать массив $b генерацией случайных чисел из 12 элементов,
отсортировать. Вывести первоначальный массив и отсортированный с
индексами.
Создать массив $abc строчных букв русского алфавита. Вывести массив. В
качестве индекса массива присвоить ASCII код и вывести в виде таблицы из
двух столбцов: в первом индекс, во втором соответствующая буква.
Создать массив $ABC прописных букв русского алфавита. Вывести массив.
В качестве индекса массива присвоить ASCII код и вывести в виде таблицы
из двух столбцов: в первом индекс, во втором соответствующая буква.
2
3
4
Функции PHP
22
23.
Задания№
Задание
5 Создать массив $abc строчных букв латинского алфавита. Вывести массив.
В качестве индекса массива присвоить ASCII код и вывести в виде таблицы
из двух столбцов: в первом индекс, во втором соответствующая буква.
6 Создать массив $ABC прописных букв латинского алфавита. Вывести
массив. В качестве индекса массива присвоить ASCII код и вывести в виде
таблицы из двух столбцов: в первом индекс, во втором соответствующая
буква.
7 Создать массив из 6 элементов. Элементы массива должны заполняться
текстовыми полями из формы по нажатию кнопки. Отсортировать массив.
Вывести исходный и отсортированный массив. Значения массива после
нажатия кнопки должны высвечиваться.
8 Создать ассоциативный массив ключами которого будут: ф, и, о, др, город.
Элементы массива должны заполняться текстовыми полями из формы по
нажатию кнопки. Вывести массив с ключам. Значения массива после
нажатия кнопки должны высвечиваться.
Функции PHP
23
24.
Задания№
Задание
9
Создать массив $с с диапазоном элементов от 5 до 45 с шагом 5.
Отсортировать массив по убыванию. Вывести первоначальный массив и
отсортированный с индексами.
Создать буквенный массив $abc генерацией случайных чисел из 12
элементов, отсортировать. В качестве индекса массива присвоить ASCII
код и вывести в виде таблицы из двух столбцов: в первом индекс, во
втором соответствующая буква.
Создать массив $mas с диапазоном элементов от 0 до 80 с шагом 10.
Отсортировать массив по убыванию. Вывести первоначальный массив и
отсортированный с индексами.
Создать буквенный массив $arr генерацией случайных чисел из 10
элементов, отсортировать. Вывести первоначальный массив и
отсортированный. В качестве индекса массива присвоить ASCII код и
вывести в виде таблицы из двух столбцов: в первом индекс, во втором
соответствующая буква.
10
11
12
Функции PHP
24
25.
Приложение A Таблица ASCII кодовТипы данных. Синтаксис языка и операторы
25