<?php
$books = array ('php' =>
'PHP users guide',
12 => true);
echo $books['php'];
//выведет 'PHP users guide'
echo $books[12]; //выведет 1
?>
Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено какое-то значение, то оно будет перезаписано. Начиная с PHP 4.3.0, если максимальный ключ – отрицательное число, то следующим ключом массива будет ноль (0).
<?php
// массивы $arr и $arr1 эквиваленты
$arr = array(5 => 43, 32, 56, 'b' => 12);
$arr1 = array(5 => 43, 6 => 32,
7 => 56, 'b' => 12);
?>
Если использовать в качестве ключа TRUE или FALSE, то его значение переводится соответственно в единицу и ноль типа integer. Если использовать NULL, то вместо ключа получим пустую строку. Можно использовать и саму пустую строку в качестве ключа, при этом ее надо брать в кавычки. Так что это не то же самое, что использование пустых квадратных скобок. Нельзя использовать в качестве ключа массивы и объекты.
Создать массив можно, просто записывая в него значения. Как мы уже говорили, значение элемента массива можно получить с помощью квадратных скобок, внутри которых нужно указать его ключ например, $book['php']. Если указать новый ключ и новое значение например, $book['new_key']='new_value', то в массив добавится новый элемент. Если мы не укажем ключ, а только присвоим значение $book[] ='new_value', то новый элемент массива будет иметь числовой ключ, на единицу больший максимального существующего. Если массив, в который мы добавляем значения, еще не существует, то он будет создан.
<?
$books['key']= value; // добавили в массив
// $books значение
// value с ключом key
$books[] = value1; /* добавили в массив
значение value1 с
ключом 13, поскольку
максимальный ключ у
нас был 12 */
?>
Для того чтобы изменить конкретный элемент массива, нужно просто присвоить ему с его ключом новое значение. Изменить ключ элемента нельзя, можно только удалить элемент (пару ключ/значение) и добавить новую. Чтобы удалить элемент массива, нужно использовать функцию unset().
<?php
$books = array ('php' =>
'PHP users guide',
12 => true);
$books[] =
'Book about Perl'; // добавили элемент
// с ключом (индексом)
// 13 это эквивалентно
// $books[13] =
// 'Book about Perl';
$books['lisp'] =
123456; /* Это добавляет к массиву новый
элемент с ключом 'lisp' и
значением 123456 */
unset($books[12]); // Это удаляет элемент
// c ключом 12 из массива
unset ($books); // удаляет массив полностью
?>
Заметим, что, когда используются пустые квадратные скобки, максимальный числовой ключ ищется среди ключей, существующих в массиве с момента последнего переиндексирования. Переиндексировать массив можно с помощью функции array_values().
<?php
$arr =
array ('a','b','c'); /* Создаем массив
со значениями
'a', 'b' и 'c'.
Поскольку ключи
не указаны, они
будут 0,1,2
соответственно */
print_r($arr); // выводим массив (и ключи,
// и значения)
unset($arr[0]);
unset($arr[1]);
unset($arr[2]);
// удаляем из него все значения
print_r($arr); // выводим массив (и ключи,
// и значения)
$arr[] = 'aa'; // добавляем новый элемент
// в массив.
// Его индексом (ключом)
// будет 3, а не 0
print_r($arr);
$arr =
array_values($arr); // переиндексируем
// массив