- •Понятие массива
- •Понятие списка
- •2. Ассоциативные массивы
- •3. Инструкции list()
- •4. Инструкция array() и создание многомерных массивов
- •5. Операции над массивами
- •5.1. Удаление массивов
- •5.3. Перебор массива
- •Косвенный перебор
- •Прямой перебор
- •Недостатки косвенного перебора
- •6. Сортировка массивов
- •Сортировка массивов по ключам. Функции ksort() и krsort()
- •Сортировка списка
- •7. Получение части массива
- •8. Добавление и удаление элементов массива
- •Добавление в конец массива
- •Удаление последнего элемента списка
- •9. Переменные и массивы. Взаимные переходы
- •Упаковка переменных в массив. Функция compact()
- •10. Создание диапазона чисел
- •11. Небольшой практический пример
- •Задание
// состоит из элементов хох, ror, tot.
Примечание. С помощью функций array_push() и аггау_рор() мы можем строить структуры LIFO (Last In First Out — «последний вошел — первый вышел»), напоминающие стек. Структуры типа стек широко применяются в программировании. Класси ческое применение стека — обратная польская запись, которая используется для разбора арифметических выражений и вычисления их значения. Добавление в начало списка. Удаление первого элемента списка Функции array_unshift() и array_shift() похожи на функции array_push() и аггау_рор(), но только работают не с концом списка, а с его началом. Функция array_unshift() добавляет элементы в начало списка, а функция array_shift() возвращает значение первого элемента списка и удаляет его из списка (удаляет «голову» списка):
SA = array(3,4,5);
2rray_unshift($А, 1,2); // получаем $А = array(1,2,3,4,5) array_shift($А); // получаем $А = array(2,3,4,5) ;
Примечание. Функции array_unshift() и array_shift() полезно использовать, если вы хотите построить очередь типа FIFO (First In First Out — «первый вошел — первый вышел»). Очередь необходима для последовательной обработки элементов массива. Стек и очередь в языках С и Pascal являются основными динамическими структурами.
Поскольку длина массивов в PHP ограничена свободными системными ресурсами, потребность в стеке и очереди исчезает. Функции для организации стека и очереди были написаны исключительно для удобства программиста — вдруг вы, программируя на С, привыкли работать именно со стеком или с очередью? Функция array_unique() Функция array_unique() предназначена для извлечения уникальных значений массива вместе с ключами этих значений. Вот пример применения этой функции:
$Arr = array("a"=>"AAA","b"="BBB","с","d","e"="BBB", "d"); $Unique_Arr = array_unique($Arr);
// $Unique_Arr = array("a"=>"AAA","b" = "BBB", "c", "d") ;
9. Переменные и массивы. Взаимные переходы
Упаковка переменных в массив. Функция compact()
Функция compact() «упаковывает» переменные и их значения в массив. B результате получается ассоциативный массив, ключами которого являются имена переменных, а значениями элементов — значения переменных Рассмотрим сказанное на примере. Предположим, что у нас есть две переменные:
$Name = "Вася";
$Email = "vasya@vvv.org";
Функция compact("Name","Email") упакует переменные в один массив:
$А = compact("Name","Email");
//получаем $А =array("Name"=>"Вася", "Email"=>"vasya@vvv.org");
Параметры функции compact() описаны как mixed, потому что параметры могут быть не только строками, но и списками строк. Если так оно и есть, функция перебирает все элементы этого списка и упаковывает переменные, имена которых она встретила. Вот небольшой пример:
$а = "ААА"; $Ь = "ВВВ"; $с = "ССС";
$Arr = array("b","с"); $Massiv = compact("a",$Arr);
// $Massiv = array("a"=>"AAA","b" = "BBB","c" = "CCC") ;
Разупаковка (извлечение) переменных из массива. Функция extract () Существует функция, противоположная функции compactQ — это функция extractQ. Она действует