В РНР вы можете создавать массивы переменных разными способами. Возможно,самый простой способ реализации массива представлен следующим синтаксисом:
$variable[<key expr>] = <ехрг>;
<кеу ехрг> — это выражение, которое вычисляется как строка или любое неотрицательное целое число, а <ехрг> представляет собой выражение, значение которого ассоциируется с этим ключом. В листинге 2.1 приведен примером массива $foo, который содержит четыре ключа — а, Ь, с и d, которым присвоены целые значения 1, 2, 3 и 4 соответственно.
Листинг 2.1. Присвоение значений массиву function assign_key() { r e t u r n ' d ' ; } $ f o o [ ' a ' ] = 1; $ f o o [ ' b ' ] = 2; $ f o o [ ' c ' ] = 3 ; $foo[assign_key()] = 4; /*3начение ключа присваиваемого элемента равно ' d ' * / ?>
Аналогичным образом можно манипулировать каждым из этих четырех ключей и использовать их подобно любой другой переменной РНР, как показано в листинге 2.2.
Листинг 2.2. Манипуляции значениями массива < ? p h p /* $ f o o [ ' b ' ] с е й ч а с р а в н о 1 + 3 = 4 * / S f o o f b ' ] = $ f o o [ ' a ' ] + $ f o o [ ' c ' ] ;
НА ЗАМЕТКУ Замена переменных в строках в двойных кавычках (подобных, например, "значение \$myvar равно $rayvar"), может оказаться сложной, когда переменная, которую нужно вычислить, хранится в виде ключа массива.
Чтобы преодолеть это, должны использоваться фигурные скобки, чтобы гарантировать, что РНР правильно обработает строку:
$ v a r - " З н а ч е н и е \ $ f o o [ ' b ' ] = { $ f o o [ ' b ' ] } " ;
Если <key expr> равно null либо не определено, РНР автоматически использует следующее по порядку доступное целое значение ключа. Какое именно целое будет выбрано в качестве следующего ключа, определяется наибольшим значением ключа, уже использованного в массиве. Если никакое целое число еще не использовано в качестве ключа, то первый создаваемый ключ будет равен 0. Если же 0 уже использовано, будет взято значение 1 и так далее. Следует отметить, что РНР не "заполняет" ключи равномерно. Это значит, что если существуют ключи 1, 3 и 4, РНР создаст целый ключ 5 несмотря на то, что ключ 2 еще не присвоен. В листинге 2.3 показан пример, иллюстрирующий упомянутую концепцию.
При определении массива внутри вашего сценария вручную, приведенный выше синтаксис может оказаться громоздким. Вместо этого метода РНР предлагает более формальный синтаксис работы с массивом — с использованием функции array (). Общий синтаксис функции array () выглядит так:
$variable = array([mixed ...]);
В приведенном синтаксисе с помощью mixed представлены различные пары ключ/значение, определенные в следующем формате:
В менее формальном виде функция array () может автоматически присваивать ключи, если они не указаны явно. Если это желательно, пропустите значение ключа и операцию =>, как показано в листинге 2.5. Листинг 2.5. Дополнительные примеры использования массивов
/,* Создает массив с ключами от 0 до 3 */ $myarray » array('a', 'b', 'с', 'd'); /* Создает массив с ключами 'а', 'Ь' и 'с' и значениями 1, 2 и 3, а также ключи 0, 1 и 2 со значениями 'а', 'Ь' и 'с' */ $myarray = array('а'=>1, 'a', 'b'=>2, 'b', 'с'=>3, 'с'); /* Создает массив, который присваивает ключи от 1 до 7 дням недели */ $days = array(1=>"Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"); ?>