|
PHP массивы для тех, кто не знает что это такое[Печать] |
| Разместил:
admin . Раздел:
Для начинающих. Опубликовано:
09-20-2007 19:47:44 |
Иногда в PHP-сриптах нужно использовать много переменных. Часто это очень неудобно. Например, когда в программе используются однотипные данные. Для уменьшения количества переменных, и зачастую для упрощения их использования и улучшения читаемости кода можно использовать массивы.
Грубо говоря, массив - это переменная, в которой хранятся другие переменные. Представьте себе группу домов в городе. У каждого дома есть адрес. У каждой переменной тоже есть свой собственный адрес, который называют индексом.
Рассмотрим пример. Есть имена трёх человек (Вася, Петя и Ибрагим) сохранённые в переменных $sPerson1, $sPerson2, и $sPerson3 соответственно. Что будет, если мы поместим их все в массив?
<?php $arrayPeople = array("Вася", "Петя", "Ибрагим"); ?>
Теперь вместо того, чтобы использовать $sPerson1, $sPerson2, и $sPerson3, можно использовать массив $arrayPeople. Из примера видно, что для создания массива была применена функция array(). Следующий скрипт отображает имена. <?php $arrayPeople = array("Вася", "Петя", "Ибрагим"); print $arrayPeople[0]; print $arrayPeople[1]; print $arrayPeople[2]; ?>
Обратите внимание, что индексы элементов массива начинаются с ноля, а не с единицы (как, например, в языке BASIC). Рассмотрим следующий пример вывода элементов массива с использованием цикла.
<?php $arrayPeople = array("Вася", "Петя", "Ибрагим"); $nArraySize = count($arrayPeople); for($index=0; $index < $nArraySize; $index++) // максимальный индекс всегда равен количеству элементов - 1, // потому что индекс начинается с ноля. { print $arrayPeople[$index]; } ?> В этом примере $index - это индекс (адрес) элемента, а $nArraySize - количество элементов в массиве. Функция count() возвращает количество элементов в массиве. Теперь блок вывода получился больше, чем в первом случае, но это только для маленьких массивов. При размере массива в сотню элементов преимущество использования циклов очевидно.
Помимо использования числовых индексов можно использовать строковые. Рассмотрим пример.
<?php $SESSION = array(); // создаём пустой массив $SESSION["username"] = $sUserName; $SESSION["password"] = $sPassword; $SESSION["accesslevel"] = $nLevel; // и т.д. ?>
Так можно использовать слова в качестве индекса. Теперь намного проще понять, что в $SESSION["username"] содержится имя пользователя, чем при использовании $SESSION[0].
Перейдём к многомерным массивам.
Многомерные массивы представляют себе массивы, элементы которых в свою очередь тоже являются массивами. Например, информацию о книжном магазине, где продаётся фантастика, детские книги и журналы я храню в массивах. <?php $arrayFantast = array("Миры империума", "Машина времени", "Берсеркер"); $arrayKidBooks = array("Сказки", "Чипполино", "Буратино"); $arrayMagazines = array("Хакер", "Мурзилка", "За рулём"); ?>
Теперь поместим все эти массивы в один. <?php $arrayFantast = array("Миры империума", "Машина времени", "Берсеркер"); $arrayKidBooks = array("Сказки", "Чипполино", "Буратино"); $arrayMagazines = array("Хакер", "Мурзилка", "За рулём"); ?> $arrayInventory = array(); $arrayInventory["arrayFantast"] = $arrayFantast; // аналогично индексу 0 $arrayInventory["arrayKidBooks"] = $arrayKidBooks; // аналогично индексу 1 $arrayInventory["arrayMagazines"] = $arrayMagazines; // аналогично индексу 2 ?>
Теперь можно распечатать значения: <?php $nSizeInv = count($ArrayInventory); for($indexInv=0; $indexInv < $nSizeInv; $indexInv++) { if($indexInv==0) // индекс 0 - фантастика { $arrayFantast = $ArrayInventory[$index]; $nSizeFantast = count($arrayFantast); for($indexFan=0; $indexFan < $nSizeFantast; $indexFan++) { $sFantast = $arrayFantast[$indexFan]; print "Fantastika: $sFantast"; } } if($indexInv==1) // индекс 1 - детские книги { $arrayKidsBooks = $ArrayInventory[$index]; $nSizeKbooks = count($arrayKidsBooks); for($indexKbook=0; $indexKbook < $nSizeKbooks; $indexKbook++) { $sKidsBook = $arrayKidsBooks[$indexKbook]; print "Kids book: $sKidsbook"; } } if($indexInv==2) // индекс 2 - журналы { $arrayMagazines = $ArrayInventory[$index]; $nSizeMags = count($arrayMagazines); for($indexMags=0; $indexMags < $nSizeMags; $indexMags++) { $sMagazine = $arrayMagazines[$indexMags]; print "Magazine: $sMagazine"; } } } ?>
Теперь Вы можете использовать массивы для своих нужд.
При возникновении проблем с работоспособностью представленного кода, попробуйте удалить следующие строки: $arrayFantast = $ArrayInventory[$index]; ... $arrayKidsBooks = $ArrayInventory[$index]; ... $arrayMagazines = $ArrayInventory[$index]; Автор: Полухин Владимир
Источник: www.wowan.ru |
| Источник:
http://qdp.ru |
|
Прочитана
1314 раз. |
|