Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
лядит несколько приятнее. Конечно, list() можно задействовать 
для любого количества переменных: если в массиве не хватит элементов, чтобы их 
заполнить, им просто присвоятся неопределенные значения. 
Что, если нам нужны только второй и третий элемент массива $List? 
В этом случае имеет смысл пропустить первый параметр в инструкции list(), вот 
так: 
list(,$surname,$age)=$List; 
Таким образом, мы получаем в $surname и $age фамилию и возраст человека, не 
обращая внимания на его имя в первом аргументе. 
Разумеется, можно пропускать любое число элементов, как слева или справа, 
так и посередине списка. Главное — не забыть проставить нужное количество 
запятых. 
Списки и ассоциативные 
массивы: путаница?.. 
Следует сказать несколько слов насчет ассоциативных массивов языка PHP. Во- 
первых, на самом деле все "остальные" массивы также являются ассоциативными (в 
частности, списки — тоже). Во-вторых, ассоциативные массивы в PHP являются на- 
правленными, т. е. в них существует определенный 
(и предсказуемый) порядок элементов, не зависящий от реализации. А значит, есть 

первый и последний элементы, и для каждого элемента можно определить следую- 
щий за ним. Именно по этой причине мне не нравится название "хэш" (в буквальном 

переводе — "мешанина"), хотя, конечно, в реализации PHP наверняка используются 
алгоритмы хэширования для увеличения быстродействия. 

Глава 10. Ассоциативные массивы 171 
Операция [] всегда добавляет элемент в конец массива, присваивая ему при этом 
такой числовой индекс, который бы не конфликтовал с уже имеющимися в массиве 
(точнее, выбирается номер, превосходящий все имеющиеся цифровые ключи в мас- 
сиве). Вообще говоря, любая операция $Array[ключ]=значение всегда добавляет 
элемент в конец массива, конечно, за исключением тех случаев, когда ключ уже 
при- 
сутствует в массиве. Если вы захотите изменить порядок следования элементов в 
ас- 
социативном массиве, не изменяя в то же время их ключей, это можно сделать 
одним 
из двух способов: воспользоваться функциями сортировки, либо же создать новый 
пустой массив и заполнить его в нужном порядке, пройдясь по элементам исходного 

массива. 
Инструкция array() 
и многомерные массивы 
Вернемся к предыдущему примеру. Нам необходимо написать программу, которая по 
фамилии некоторого человека из группы будет выдавать его имя. Поступим так же, 
как и раньше: будем хранить данные в ассоциативном массиве (сразу отбрасывая 
возможность составить ее из огромного числа конструкций if-else как неинтерес- 
ную): 
$Names["Ivanov"] ="Dmitry"; 
$Names["Petrova"]="Helen"; 
Теперь можно, как мы знаем, написать: 
echo $Names["Petrova"]; // выведет Helen 
echo $Names["Oshibkov"]; // ошибка: в массиве нет такого элемента! 
Идем дальше. Прежде всего обратим внимание: приведенным выше механизмом мы 
никак не смогли бы создать пустой массив. Однако он очень часто может нам пона- 

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

указанным выше образом не очень-то удобно — приходится все время однообразно 
повторять строку $Names... 
Так вот, существует и второй способ создания массивов, выглядящий значительно 
компактнее. Я уже упоминал его несколько раз — это использование оператора 
array(). Например: 
// создает пустой массив $Names 
$Names=array(); 
// создает такой же массив, как в предыдущем примере с именами 
$Names=array("Ivanov"=>"Dmitry", "Petrova"=>"Helen"); 
// создает список с именами (нумерация 0,1,2) 
$NamesList=array("Dmitry","Helen","Sergey"); 

Часть III. Основы языка PHP 172 
Теперь займемся вопросом, как формировать двумерные (и вообще многомерные) 
массивы. Это довольно просто. В самом деле, я уже говорил, что значениями пере- 

менных (и значениями элементов массива тоже, поскольку PHP не делает никаких 
различий между переменными и элементами массива) может быть все, что угодно, в 
частности — опять же массив. Так, можно создавать ассоциативные массивы (а мож- 

но — списки) с люб
 
<<-[Весь Текст]
Страница: из 287
 <<-