Опубликован: 08.05.2007 | Доступ: свободный | Студентов: 12882 / 3013 | Оценка: 4.13 / 3.77 | Длительность: 12:58:00
Лекция 3:

Данные PHP

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >

Переменные массивы

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

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Максим Матросов
Максим Матросов
Наталья Джабасова
Наталья Джабасова