Четверг, 16.05.2024, 21:21
DigitalBox
Приветствую Вас Гость | RSS
Главная Создание массивов Регистрация Вход
Меню сайта

Использование массивов



Массивы представляют собой составные переменные, позволяющие объединять данные под одним именем. Например, в одной переменной $FordInfо можно хранить такую информацию о машине, как название модели, цвет или стоимость. При этом массивы можно легко обрабатывать, получать к ним доступ или изменять информацию. Например, в РНР предусмотрено несколько методов сортировки данных в массивах.

Массивы являются важным элементом программирования на языке РНР. В этом разделе описывается, как создавать, изменять и удалять массивы.


Создание массивов

Для создания переменной в РНР ей можно присвоить значение. Аналогично, чтобы создать массив, необходимо присвоить ему соответствующие значения. Например, пусть $customers — переменная, которая ранее не использовалась в сценарии. Тогда для создания массива с именем $customers воспользуемся выражением:

$customers[1] = "Сэм Смит";

Теперь $customers — имя массива с единственным значением "Сэм Смит". Рассмотрим следующий фрагмент кода:

$customers[2] = "Сью Джонс";
$customers[3] = "Мэри Хуанг";

Теперь массив $customers содержит три значения: "Сэм Смит", "Сью Джонс" и "Мэри Хуанг".

Массив можно рассматривать как набор пар ключ-значение (key/value), т.е

$arrayname['ключ1'] = значение1;
$arrayname['ключ2'] = значение2;
$arrayname['ключЗ'] = значениеЗ;

и т.д. по всем элементам массива. Ключ (key) также называют индексом (index).

В качестве индекса в массивах могут использоваться числа или строки. В массиве $customers индексами являются 1, 2 и 3. Однако можно использовать и текстовые строки. Рассмотрим пример создания массива, в котором индексами являются прописные буквы некоторых штатов:

$capitals['СА'] = "Сакраменто";
$capitals['TX'] = "Остин";
$capitals['OR'] = "Салем";

Для создания массива можно также использовать сокращенную запись, а не писать отдельное выражение для каждого значения индекса. Одним из возможных вариантов является:

$streets[] = "ул. Вязов";
$streets[] = "ул. Дубов";
$streets[] = "7-ая авеню";

В таком случае создается массив с автоматической нумерацией индексов — числами, начиная с 0. Например, для отображения первого элемента массива можно воспользоваться следующим выражением:

echo " $streets[0]";

В результате получим:

ул. Вязов

Отсчет значений индекса массивов начинается с 0, если только специально не присвоить другое значение. Одной из часто совершаемых ошибок является использование в качестве первого значения индекса массива 1, а не 0.

Еще более сокращенной записью создания массива является:

$streets = аrrау("ул. Вязов", "ул. Дубов", "7-ая авеню");

В результате выполнения этого оператора создается массив, аналогичный созданному в предыдущем примере. Если, например, необходимо, чтобы отсчет в массиве начинался с 12, а не с 0, можно воспользоваться выражением:

$streets = аrrау(12 =>"ул. Вязов", "ул. Дубов", "7-ая авеню");

В результате будет создан следующий массив:

$streets[12] = "ул. Вязов";
$streets[13] = "ул. Дубов";
$streets[14] = "7-ая авеню";

Аналогичным образом можно создавать массивы с текстовыми индексами. Например, с помощью следующего выражения можно создать массив сокращенных названий штатов:

$capitals = array("CA" => "Сакраменто",
                             "ТХ" => "Остин",
                             "OR" => "Салем"));

Обратите внимание на структуру этого выражения. РНР не учитывает пробелы и перевод строки. Все выражение можно было бы написать в одну длинную строку. Однако приведенная выше структура позволяет программистам облегать анализ кода сценария, который стоит создавать настолько прозрачным и четким, насколько это возможно. При тестировании кода сценария вы с удовольствием сможете оценить затраченные усилия.

РНР также позволяет создавать массивы, значения которых будут находиться в некотором промежутке. Например:

$years = range(2001 , 2010);

В результате будет создан следующий массив:

$years[0] = 2001
$years[1] = 2002
............................
$years[8] = 2010
$years[9] = 2010

Можно также воспользоваться выражением:

$reverse_letters = range("z", "a" );

и в результате будет создан массив из 26 элементов:

$reverse_letters[0] = z
$reverse_letters[1] = у
........................................
$reverse_letters[24] = b
$reverse_letters[25] = a

Вывод элементов массивов

Для просмотра структуры и значений элементов массива можно воспользоваться одной из двух функций: var_dump () или print_r(). Однако функция print_r() не так полезна. Рассмотрим следующее выражение для вывода массива $customers:

print_r($customers);

В результате получим:

Array
{
     [1] => Сэм Смит
     [2] => Сью Джонс
     [3] => Мэри Хуанг
}

Таким образом, выводятся только индекс и значение каждого элемента массива. Для получения более подробной информации о массиве следует использовать функцию var_dump ():

var_dump($customers) ;

В результате получим следующее:

array(3){
     [1] =>
     string(8) "Сэм Смит"
     [2]=>
     string(9) "Сью Джонс"
     [3]=>
     string(10) "Мэри Хуанг"
}

В этом случае вместе с индексом и значением будет также выводиться тип данных каждого элемента массива (например, текстовая строка из девяти символов). Так, массив, содержащий информацию об имени покупателя и его возрасте, отобразится с помощью функции var_dump() следующим образом:

array( 2 ){
     ["name"]=>
     string(9) "Сэм Смит"
     ["age"]=>
     int(12)
}

Целочисленный тип элемента массива определяется ключевым слова int. В данном примере элемент с индексом age имеет значение 12.

Необходимо помнить, что в таком виде информация о массиве возвращается интерпретатором РНР. Однако при использовании РНР для Web результат выполнения функций print_r() и var_dump () будет отображаться с помощью HTML, т.е. будет выведен в одну длинную строку. Для форматирования выводимой в браузер информации о массивах следует воспользоваться соответствующими HTML-дескрипторами, например:

echo "<рге>";
var_dump($customers);
echo "</pre>";


Изменение массивов

Массивы можно изменять таким же образом, как и переменные. РНР позволяет изменять значения, добавлять или удалять элементы и производить сортировку. Например, если имеется массив $capitals, значение его элемента можно легко изменить следующим образом:

$capitals['ТХ'] = "Биг Спрингс";

Это выражение присваивает элементу с индексом ТХ новое значение "Биг Спрингс", хотя жители Остина (Austin) могут возразить (Остин— столица штата Техас). Для создания нового элемента массива $capitals можно воспользоваться следующим кодом:

$capitals['RI'] = "Провиденс";

Это выражение добавляет новый элемент, не изменяя существующие.

Предположим, имеется созданный ранее массив, в котором индексами являются целые числа:

$customers[1] = Сэм Смит
$customers[2] = Сью Джонс
$customers[3] = Мэри Хуанг

При использовании выражения

$customers[] = "Хуан Лопес";

массив $customers будет уже состоять из четырех элементов:

$customers[1] = Сэм Смит
$customers[2] = Сью Джонс
$customers[3] = Мэри Хуанг
$customers[4] = Хуан Лопес

РНР позволяет легко копировать существующий массив в новый, например:

$customerCopy = $customers;


Удаление значений из массива

Иногда необходимо полностью удалить значение из массива. Например, предположи, что имеется массив

$colors = array("красный", "зеленый", "синий", "розовый", "желтый");

который содержит пять значений. А теперь предположим, что вам больше не нравится розовый цвет и вы хотите от него избавиться. Этого можно добиться таким образом:

$colors[3] = "";

Однако это выражение присваивает элементу $colors[3] пустое значение, но не удаляет его. Массив $colors все еще содержит пять элементов, значение одного из которых — пустая строка. Для того чтобы полностью удалить его из массива, необходимо воспользоваться следующим выражением:

unset($colors[3]);

Теперь массив $colors содержит четыре значения:

$colors[0] = красный
$colors[1] = зеленый
$colors[2] = синий
$colors[4] = желтый

Следует заметить, что при удалении элемента с индексом 3 все остальные остались неизмененными.

После того как массив создан, он не перестает существовать до тех пор, пока его специально не удалить. При этом удаление его элементов по отдельности не влечет за собой удаление массива как такового, точно так же, как извлечение всей одежды из шкафа не говорит о ее исчезновении. Для того чтобы удалить массив, необходимо использовать выражение:

unset($colors);

Форма входа

Мини-чат

Календарь новостей
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Поиск

Друзья сайта
Скажи сайту спасибо
ЯндексЯндекс. ДеньгиХочу такую же кнопку



Получить WMR-бонус на свой кошелек!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024 Бесплатный конструктор сайтов - uCoz