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

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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
ь позже остановимся подробнее.
 
Давайте теперь посмотрим, как можно распечатать наш список. Самый простой спо- 
соб — воспользоваться циклом for: 
echo "А вот первый элемент массива: ".$NamesList[0]."
"; for($i=0; $i<кол-во_элементов; $i++) echo $NamesList[$i]."
"; Количество элементов в массиве легко можно определить, задействуя функцию count() или ее синоним sizeof(): for($i=0; $i"; Создание массива "на лету". Автомассивы В примере из листинга 10.1, казалось бы, все гладко. За исключением одного не- большого недостатка: каждый раз, добавляя имя, мы должны были выбирать для него номер и заботиться, чтобы ненароком не указать уже существующий. Чтобы этого избежать, можно написать те же команды так: $NamesList[]="Dmitry"; $NamesList[]="Helen"; $NamesList[]="Sergey"; Глава 10. Ассоциативные массивы 169 В этом случае PHP сам начнет (конечно, если переменная $NamesList еще не суще- ствует) нумерацию с нуля и каждый раз будет прибавлять к счетчику по единичке, создавая список. Согласитесь, довольно удобно. Разумеется, можно использовать [] и не только в таком простом контексте, очень часто они применяются для более об- щего действия — добавления элемента в конец массива, например: Unset($FNames); // на всякий случай стираем массив while($f=очередное_имя_файла_в_текущем каталоге) if(расширение_$f_есть_txt) $FNames[]=$f; // теперь $FNames содержит список файлов с расширением txt Если же нам нужно создать ассоциативный массив (я буду его иногда называть хэш), все делается совершенно аналогично, только вместо цифровых ключей мы должны указывать строковые. При этом следует помнить, что в строковых ключах буквы нижнего и верхнего регистров считаются различными. И еще: ключом может быть абсолютно любая строка, содержащая пробелы, символы перевода строки, нулевые символы и т. д. То есть, никаких ограничений на ключи не накладывается. Поясню сказанное на примере. Пусть нам надо написать сценарий, который работает, как записная книжка: по фамилии абонента он выдает его имя. Мы можем организо- вать базу данных этой книжки в виде ассоциативного массива с ключами — фами- лиями и соответствующими им значениями имен людей: $Names["Koteroff"] = "Dmitry"; $Names["Ivanov"] = "Ivan"; $Names["Petrov"] = "Peter"; Далее, мы можем распечатать имя любого абонента командой: echo $Names["Ivanov"]; $f="Koteroff"; echo $Names[$f]; Как видите, тут никаких особенностей нет, все работает совершенно аналогично спи- скам, только с нецифровыми ключами. Возможно, вы скажете, что это не совсем так: например, нельзя воспользоваться циклом for, как мы это делали раньше, для выво- да всех персоналий, и окажетесь правы. Вскоре мы рассмотрим целых три приема, с помощью которых можно перебрать все элементы массива. Вы, скорее всего, будете применять их даже и для списков — настолько они удобны и универсальны, а к тому же и работают быстрее, чем последовательный перебор в цикле for с использовани- ем $i. Часть III. Основы языка PHP 170 Инструкция list() Пусть у нас есть некоторый массив-список $List с тремя элементами: имя человека, его фамилия и возраст. Нам бы хотелось присвоить переменным $name, $surname и $age эти величины. Это, конечно, можно сделать так: $name=$List[0]; $surname=$List[1]; $age=$List[2]; Но гораздо изящнее будет воспользоваться инструкцией list(), предназначенной как раз для таких целей: list($name,$surname,$age)=$List; Согласитесь, вы
 
<<-[Весь Текст]
Страница: из 287
 <<-