Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

PHP и MySQKL для начинающих - Харрис Э.

Харрис Э. PHP и MySQKL для начинающих — Кудиц образ , 2005. — 388 c.
ISBN 1-931841-32-2
Скачать (прямая ссылка): phpmysquldlanachin2005.pdf
Предыдущая << 1 .. 48 49 50 51 52 53 < 54 > 55 56 57 58 59 60 .. 84 >> Следующая

</select>
c/td>
ctd>
cselect name = "cityB,'>
coption value = 0>lndianapolisc/option> coption value = l>New Yorkc/option> coption value - 2>Tokyoc/option> coption value = 3>Londonc/option> c/select> c/td> c/tr>
6*
164
Глава 5
<tr>
<td colspan = 2>
<input type = "submit"
value = "calculate distance">
</td>
</tr>
</table>
</body>
</html>
Когда пользователь отправляет эту форму, она посылает две переменные. В переменной cityA будет храниться свойство value, ассоциированное с начальным городом, который выберет пользователь, а в переменной cityB - конечный город. Я аккуратно установил свойства value таким образом, что они соответствуют численному индекс каждого города. Если пользователь выберет Нью-Йорк как начальный город, значение ScityA будет равно 1, потому что я решил, что Нью-Йорку будет соответствовать значение 1. Причина для создания численных значений состоит в том, что информация будет храниться в массивах, а обычные массивы имеют численные индексы (в следующем разделе я покажу вам, как сделать то же самое с помощью ассоциативных массивов).
Отвечаем на запрос определения расстояния *
Код программы, которая определяет расстояние между городами, на самом деле довольно прост, стоит только разобраться с массивами.
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Distance calculator*:/title>
</head>
<body>
<?
$city = array (
"Indianapolis",
"New York",
”Tokyo",
"London"
) ;
$distance = array (
array (0, 648, 6476, 4000), array (648, 0, 6760, 3470), array (6476, 6760, 0, 5956),
Улучшенная обработка массивов и строк
165
array (4000, 3470, 5956, 0}
) ;
$result = $distance[$cityA][$cityB]; print "<h3>The distance between print "$city[$cityA] and $city [ $cityB] " print * is $result miles.</h3>";
?>
</body>
</html>
Храним названия городов в массиве Jcity
В этой программе есть два массива. Массив $city - абсолютно обычный массив строковых значений. Он содержит список названий городов. Я аккуратно создал массив таким образом, чтобы численные значения, которые я присвоил городам, соответствовали индексам массива. Помните - индексирование массива обычно начинаются с нуля, так что Индианаполис - это ноль, Нью-Йорк -,это один и т. д.
Пользователь не знает, что Indianapolis - это 0, поэтому я использовал массив $city, чтобы назначить названия городам. Если пользователь выберет город ноль (Индианаполис) в поле $cityA, я могу обратиться к названию города как к $city[$cityA], потому что $cityA будет равен 0, a $city [ 0 ] - это «Indianapolis».
Храним расстояния в массиве $distance
Расстояния нельзя расположить списком, потому что для определения расстояния требуется две переменных. Чтобы определить расстояние, вам надо знать, из какого города вы выходите и в какой направляетесь. Эти два значения соответствуют строкам и столбцам начальной таблицы. Взгляните еще раз на код, который создает массив $distance.
$distance = array (
array (0, 648, 6476, 4000), array {648, 0, 6760, 3470), array (6476, 6760, 0, 5956), array (4000, 3470, 5956, 0)
) ;
Массив $distance на самом деле является массивом, содержащим другие массивы! Каждый из внутренних массивов соответствует расстоянию от определенного начального города. Например, поскольку Индианаполис - это 0, первый (нулевой?) внутренний массив содержит расстояния между Индианаполисом и другими городами. Для лучшего понимания представьте себе каждый внутренний массив как
166
Глава 5
строку таблицы, а таблицу как массив строк. Хотя на первый взгляд построить двумерный массив сложно, на самом деле это куда естественнее чем вы, возможно, думаете. Если вы сравните табл. 5.1 и код, который создает двумерный массив, вы увидите, что все числа на тех же местах.
Вовсе не обязательно останавливаться на двух измерениях. Можно создать массивы с тремя, четырьмя или с любым другим количеством измерений. Однако становится трудно представить, как работают данные в таких сложных массивах. Как правило, одно- и двумерные массивы я&чяются самыми сложными из массивов, которые вам понадобятся. Для более сложных типов данных вам потребуется обратиться к инструментам работы с файлами и реляционным структурам данных, которых мы еще коснемся в этой книге.
Получение данных из массива Jdistance
Как только информация попадает в двумерный массив, ее достаточно легко оттуда получить. Чтобы найти информацию в таблице, вам надо знаггь строку и столбец. Двумерный массив требует двух индексов - один для строки и один для столбца. Чтрбы найти расстояние между Токио (город номер 2) и Нью-Йорком (город номер 1), вам надо просто обратиться к $ distance [2 ] [ 1 ]. Код для демонстрационной программы получает значения индексов из следующей формы.
$result = $distance[$cityA][$cityB];
Это значение сохраняется в переменной $result, а затем отсылается пользователю.
Создаем двухмерный ассоциативный массив
Вы можете также создавать двухмерные ассоциативные массивы. Требуется немного больше работы, чтобы создать такой массив, но она того стоит, потому что отношения имя-значение устраняет необходимость следить за числовыми идентификаторами каждого элемента. Другая версия программы multi Array показывает, как использовать ассоциативные массивы для создания такой же программы подсчета расстояний между городами.
Предыдущая << 1 .. 48 49 50 51 52 53 < 54 > 55 56 57 58 59 60 .. 84 >> Следующая