Данные PHP
Переменные массивы
В то время как скалярная переменная PHP хранит одно значение, переменную массива можно использовать для хранения множества или последовательности значений. Система PHP поддерживает массивы с числовыми индексами и ассоциативные массивы. Массив в PHP является фактически упорядоченным отображением. Отображение является типом, который отображает значения в ключи. Переменные массивов состоят из двух частей – индекса и элемента. Индекс массива, иногда называемый ключом массива, является значением, применяемым для идентификации или доступа к элементам массива. Индекс массива помещается в квадратные скобки. Большинство массивов используют числовые индексы, которые обычно начинаются с 0 или 1. В PHP ассоциативные массивы могут использовать строковые индексы. Оба типа массивов создаются с помощью конструкции array().
Массивы с числовыми индексами
$my_array = array('red', 'green', 'blue');
Этот код создает массив с числовым индексом с именем $my_array. Массиву присваивается три элемента — red, green, и blue. Каждый элемент идентифицируется числовым индексом.
$my_array[0] = 'red' // индекс 0 соответствует элементу red $my_array[1] = 'green' // индекс 1 соответствует элементу green $my_array[2] = 'blue' // индекс 2 соответствует элементу blue
Чтобы получить доступ к содержимому массива, используется имя массива и индекс. Следующий код применяется для вывода значений переменной $my_array.
<!DOCTYPE html PUBLIC "-//W3C//DTD/XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Страница Web </title> </head> <body> <p> <?php $my_array = array('red', 'green', 'blue'); echo "Первое значение массива — " . $my_array[0]."<br/>"; echo "Второе значение массива — " . $my_array[1]."<br/>"; echo "Третье значение массива — " . $my_array[2]."<br/>"; ?> </p> </body> </html>
Первое значение массива — red Второе значение массива — green Третье значение массива — blue
Ассоциативные массивы
Ассоциативные массивы позволяют использовать более полезные значения индекса. Для массивов с числовыми индексами значения индекса создаются автоматически, начиная с 0. Ассоциативные массивы допускают применение числовых и строковых значений индекса. Символ между индексом и значениями ( => ) является знаком равенства, за которым сразу следует символ больше.
$members = array('FName' => 'John', 'LName' => 'Smith', 'Age' => 50)
В этом примере члены массива содержат три элемента, однако используются строковые индексы — FName, LName и Age.
$members['FName'] = 'John' //индекс FName соответствует элементу John $members['LName'] = 'Smith' // индекс LName соответствует элементу Smith $members['Age'] = '50' // индекс Age соответствует элементу 50
Для доступа к содержимому массива используется имя массива и индекс. Следующий код применяется для вывода значений переменной $members.
<!DOCTYPE html PUBLIC "-//W3C//DTD/XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Страница Web </title> </head> <body> <p> <?php $members = array('FName' => 'John', 'LName' => 'Smith', 'Age' => 50); echo "The user's first name is " . $members['FName']; echo "The user's last name is " . $members['LName']; echo "The user's age is " . $members['Age']; ?> </p> </body> </html> The user's first name is John The user's last name is Smith The user's age is 50
Функции для работы с массивами
Кроме функции array() система PHP включает множество других функций для работы с массивами. Следующий раздел описывает некоторые из наиболее часто используемых функций. Более обширный список доступен на Web-сайте PHP.
count() – функция count используется для подсчета числа элементов в массиве.
sort() – функция sort используется для сортировки элементов существующего массива.
shuffle() – функция shuffle используется для случайного перемешивания элементов в заданном массиве.
sizeof() – функция sizeof является синонимом (алиасом) функции count().
array_slice($array_name,offset, length) – функция array_slice используется для извлечения части существующего массива. $array_name является именем разрезаемого массива, offset указывает позицию, где будет начинаться разрез, length указывает число элементов, которое будет вырезано из массива.
array_merge($array_name, $array_name) – функция array_merge используется для объединения или слияния двух или большего количества существующих массивов. Имена массивов разделяются запятыми.
Следующий код показывает, как применяется каждая из функций для работы с массивами.
<!DOCTYPE html PUBLIC "-//W3C//DTD/XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Страница Web </title> </head> <body> <p> <?php //Созданы два массива $numbers = array(50,20,18,30,10,7); $colors = array('red', 'blue', 'green'); // определяем размер массива $numbers — 6 $array_size = sizeof($numbers); // сортируем элементы массива $numbers – возвращает array(7,10,18,20,30,50) sort($numbers); // случайным образом перемешиваем элементы массива $numbers shuffle($numbers); // $merged_array возвращает array(7,10,18,20,30,50,'red','blue','green') $merged_array = array_merge($numbers,$colors); // вырезаем номера 18 и 20 из сортированного массива $numbers // $slice содержит array(18,20) $slice = array_slice($numbers, 2, 2); ?> </p> </body> </html>Пример 3.1.
PHP включает также ряд предопределенных или глобальных массивов. Их называют также суперглобальными переменными, так как они всегда присутствуют и доступны для всех блоков сценария PHP. Ниже показаны обычно используемые суперглобальные переменные PHP.
$_GET[] $_POST[] $_REQUEST[] $_COOKIE[] $_FILES[] $_SERVER[] $_ENV[] $_SESSION[]
Суперглобальные переменные PHP будут описаны в дальнейшем. Массивы имеют много применений в PHP и программировании в целом. Этот раздел представил некоторые базовые вопросы массивов PHP и описал некоторые базовые функции: это понадобится при рассмотрении более развитых свойств массивов в следующих разделах.