Как и в других языках программирования, массивы в РНР используются для группировки данных под общим именем. Однако понятие массива используется в несколько ином смысле.
Считается, что каждый элемент массива имеет две характеристики:
а) значение — это хранимая элементом информация,
б) ключ — служебная информация, которая уникально идентифицирует значение элемента.
Ключи могут быть целыми числами или строками. Массивы с целочисленными ключами называются скалярными массивами.
Массивы, у которых в роли ключей используются (литералы) символьные строки, называются ассоциативными.
В РНР различие между скалярными и ассоциативными массивами внешнее, так как внутреннее представление обоих типов массивов — списочное.
Каждый элемент массива — это переменная, а в РНР переменные не типизированы. Поэтому массивы РНР могут одновременно хранить числа, строки или даже другие массивы, т.е. значения разных типов.
Имена массивов, как и переменных, должны начинаться со знака доллара ($).
Библиотека РНР имеет две функции для получения использованных в массиве ключей и занесенных в него значений: и
array_keys(имя_массива)и array_values(имя_массива).
Обе функции возвращают информацию в виде проиндексированных числами массивов.
Количество элементов в массиве можно вычислить с помощью функции
count(имя_массива)
или аналогичной ей sizeof().
Операторы для вывода информации о структуре и
Значениях объектов данных
В РНР имеются функции, позволяющих выводить информацию о переменных и других элементах данных, включая структурированные, такие как массивы и объекты. Эта информация бывает очень полезна при отладке программы.
а) Функция print_r.
Отображает информацию о переменной. Если функции передается переменная, содержащая строку или число, то выводится значение переменной.
Для массивов выводятся значения индексов и значения элементов.
Для объектов выводятся имена и значения всех свойств.
Строка в конце вывода не переводится.
б) Функцияvar_dump.
Выдает структурированную информацию о переменной (выражении), включающую ее тип и значение.
Если элементы массива имеют сложное устройство, то функция обрабатывает их рекурсивно.
Для объектов распечатываются только открытые (общедоступные) свойства.
Строка в конце вывода не переводится.
Управлением внутренним указателем
Для управления внутренним указателем массива предназначены следующие функции:
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; // ‘первый’
Вопросы для самоконтроля
1. Какие существуют варианты создания массивов с помощью конструктора?
2. В чем состоит назначение оператора foreach? Чем различаются варианты синтаксиса оператора foreach?
3. Можно ли создавать ассоциативные массивы, не используя конструктор?
4. Можно ли создавать массивы с числовыми индексами, не используя конструктор?
5. Какими способами создаются многомерные массивы?
6. Для чего нужен внутренний указатель массива и как им можно управлять?
7. Для чего используется итератор each и в чем особенность возвращаемого им значения?
8. Влияет ли вызов итератора each на положение внутреннего указателя массива?
9. Для чего предназначена конструкция list и каковы особенности её выполнения? Использует ли list в своей работе внутренний указатель массива?
10. Какие библиотечные функции позволяют получить ключи и значения элементов массива?
11. Какие операторы можно применять для вывода информации о структуре объектов данных?
Статьи к прочтению:
Изучение PHP для начинающих | Урок #23 — Функции для работы с массивами
Похожие статьи:
-
Общие сведения о блочных шифрах
Характерной особенностью блочных криптоалгоритмов является тот факт, что в ходе своей работы они производят преобразование блока входной информации…
-
Общие сведения о программе library executive
При проектировании печатных плат необходимы сведения о схемных образах ЭРЭ и посадочных местах для них. Программы размещения и трассировки должны иметь…