Данные 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 и описал некоторые базовые функции: это понадобится при рассмотрении более развитых свойств массивов в следующих разделах.