- •Лабораторная работа
- •Создание массивов с помощью функции-конструктора
- •Задание 1 (Простейший анализ массивов)
- •Оператор foreach
- •Задание 2 (Использование оператора foreach)
- •Динамическое формирование массивов
- •Многомерные массивы
- •Итератор each
- •Конструкция list
- •1. Общие сведения о применении массивов в рнр
- •Количество элементов в массиве можно вычислить с помощью функции
- •2. Операторы для вывода информации о структуре и значениях объектов данных
- •3. Управлением внутренним указателем
- •Вопросы для самоконтроля
1. Общие сведения о применении массивов в рнр
Как и в других языках программирования, массивы в РНР используются для группировки данных под общим именем. Однако понятие массива используется в несколько ином смысле.
Считается, что каждый элемент массива имеет две характеристики:
а) значение — это хранимая элементом информация,
б) ключ — служебная информация, которая уникально идентифицирует значение элемента.
Ключи могут быть целыми числами или строками. Массивы с целочисленными ключами называются скалярными массивами.
Массивы, у которых в роли ключей используются (литералы) символьные строки, называются ассоциативными.
В РНР различие между скалярными и ассоциативными массивами внешнее, так как внутреннее представление обоих типов массивов — списочное.
Каждый элемент массива — это переменная, а в РНР переменные не типизированы. Поэтому массивы РНР могут одновременно хранить числа, строки или даже другие массивы, т.е. значения разных типов.
Имена массивов, как и переменных, должны начинаться со знака доллара ($).
Библиотека РНР имеет две функции для получения использованных в массиве ключей и занесенных в него значений: и
array_keys(имя_массива) и array_values(имя_массива).
Обе функции возвращают информацию в виде проиндексированных числами массивов.
Количество элементов в массиве можно вычислить с помощью функции
count(имя_массива)
или аналогичной ей sizeof().
2. Операторы для вывода информации о структуре и значениях объектов данных
В РНР имеются функции, позволяющих выводить информацию о переменных и других элементах данных, включая структурированные, такие как массивы и объекты. Эта информация бывает очень полезна при отладке программы.
а) Функция print_r.
Отображает информацию о переменной. Если функции передается переменная, содержащая строку или число, то выводится значение переменной.
Для массивов выводятся значения индексов и значения элементов.
Для объектов выводятся имена и значения всех свойств.
Строка в конце вывода не переводится.
б) Функция var_dump.
Выдает структурированную информацию о переменной (выражении), включающую ее тип и значение.
Если элементы массива имеют сложное устройство, то функция обрабатывает их рекурсивно.
Для объектов распечатываются только открытые (общедоступные) свойства.
Строка в конце вывода не переводится.
3. Управлением внутренним указателем
Для управления внутренним указателем массива предназначены следующие функции:
reset — установка указателя в начальную позицию,
end — установка указателя в последнюю позицию,
prev — установка указателя в предыдущую позицию,
next — установка указателя в следующую позицию,
current — получить номер текущей позиции.
Примеры
$arr = array('первый', 'второй', 'третий', 'четвертый');
$elem = current($arr);
echo $elem; //'первый'
next($arr);
$elem = next($arr);
echo $elem; //'третий'
$elem = current($arr);
echo $elem; //'третий'
$elem = each($arr);
print_r($elem); //Array([1]=>третий [value]=>третий [0]=>2 [key]=>2)
$elem = current($arr);
echo $elem; //после вызова итератора — 'четвертый'
$elem = prev($arr);
echo $elem; // 'третий'
$elem = end($arr);
echo $elem; // 'четвертый'
$elem = reset($arr);
echo $elem; // 'первый'
