Аналогичным образом


function assign_key() { return 1 d’;
} .
$foo['a'] » 1; Sfoofb’] = 2; Sfoofc’] = 3;
Sfoo[assign_key()] = 4; /*3начение ключа присваиваемого элемента равно ‘d’*/

Аналогичным образом можно манипулировать каждым из этих четырех ключей и использовать их подобно любой другой переменной РНР, как показано в листинге 2.2.
Листинг 2.2. Манипуляции значениями массива

/* Sfoo['b'] сейчас равно 1+3=4*/ Sfool’b'J • $foo['a'] + Sfoofc’];

НА ЗАМЕТКУ ■■
Замена переменных в строках а двойных кавычках (подобных, например, “значение \Smyvar равно Smyvar”), может оказаться сложной, когда переменная, которую нужно вычислить, хранится в виде ключа массива. Чтобы преодолеть это, должны использоваться фигурные скобки, чтобы гарантировать, что РНР правильно обработает строку:
Svar - “Значение \$foo['b'] = {Sfoo['b'])”;
Если равно null либо не определено, РНР автоматически использует следующее по порядку доступное целое значение ключа. Какое именно целое будет выбрано в качестве следующего ключа, определяется наибольшим значением ключа, уже использованного в массиве. Если никакое целое число еще не использовано в качестве ключа, то первый создаваемый ключ будет равен 0. Если же 0 уже испол1>зоца-но, будет взято значение 1 и так далее. Следует отметить, что РНР не “заполняет” ключи равномерно. Это значит, что если существуют ключи 1, 3 и 4, РНР создаст целый ключ 5 несмотря на то, что ключ 2 еще не присвоен. В листинге 2.3 показан пример, иллюстрирующий упомянутую концепцию.
Листинг 2.3. Автоматическая генерация индексов массива

$foo[] = “Значение 1″; /* Присвоен ключ 0 */
Sfoo[] ” “Значение 2я; /* Присвоен ключ 1 */
Sfoo[5] = “Значение 3″; /* Присвоен ключ 5 */
Sfoo[] = “Значение 4″; /* Присвоен ключ 6 */
формальный синтаксис работы с массивом — с использованием функции array О - Общий синтаксис функции array () выглядит так:
Svariable * array([mixed ...]);
В приведенном синтаксисе с помощью mixed представлены различные пары ключ/значение, определенные в следующем формате:
-> , =>
В частности, PHP-код в листинге 2,4 создает тот же массив Sfoo, что и предыдущие примеры, использующие формальный синтаксис:
Листинг 2.4. Использование функции array ()

/* Массивы Sfoo и Sbar эквиваленты */
Sfoo = array(’а’ => 1, ‘b’ => 2, ‘с’ => 3) ;
Sbar['а'] - 1;
Sbar['b'] = 2;
Sbar['с'] = 3;

В менее формальном виде функция array () может автоматически присваивать ключи, если они не указаны явно. Если это желательно, пропустите значение ключа и операцию =>, как показано в листинге 2.5.
Листинг 2.5. Дополнительные примеры использования массивов

/.* Создает массив с ключами от 0 до 3 */ Smyarray = array(’a', ‘b’, ‘с1, ‘d’);
/* Создает массив с ключами ‘а’, ‘Ь’ и ‘с’ и значениями 1, 2 и 3, а также ключи 0, 1 и 2 со значениями ‘а’, 1b1 и ‘с’ */ Smyarray = array)’а’=>!, ‘а’, ‘Ь’=>2, ‘Ь1, ‘с’=>3, ‘с’);
/* Создает массив, который присваивает ключи от 1 до 7 дням недели */ Sdays = array(1=>”Воскресенье”, “Понедельник”, “Вторник”, “Среда”, “Четверг”, “Пятница”, “Суббота”);

Многомерные массивы
До сих пор все ваши массивы были одномерными, и это означало, что ни один из элементов массива не был массивом. По определению, создание многомерных массивов не сложнее, чем присвоение значения одного ключа массива другому массиву.
Как и любые другие массивы, многомерные массивы могут быть созданы с помощью формального синтаксиса {функции array ()), либо с использованием более простого синтаксиса с квадратными скобками, как показано в листинге 2.б.

Tags: , ,

Related posts


Leave a Reply


Бесплатно:выезд и консультация - монтаж систем видеонаблюдения.