Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
php учебник_весь.doc
Скачиваний:
8
Добавлен:
21.09.2019
Размер:
2.06 Mб
Скачать

4. Массивы Инициализация массивов

В PHP существует 2 метода инициализации массивов. Первый из них состоит в простом присвоении значений элементам массива:

<?

$car[] = "passenger car";

$car[] = "land-rover";

echo($car[1]); // выводит "land-rover"

?>

Индекс массива можно указать явно:

<?

$car[0] = "passenger car";

$car[1] = "land-rover";

echo($car[1]); // выводит "land-rover"

?>

Заметим, что если при объявлении элементов массива смешиваются переменные с явной индексацией, и без индексации, то тому элементу, индекс которого не задан, PHP присвоит первый доступный индекс, после самого большого использованного до сих пор индекса. Например, если мы создадим массив с элементами, индексы которых будет равны, скажем, 10, 20 и 30, а потом создадим элемент, индекс которого явно не укажем, то ему автоматически присвоится индекс 31:

<?

$car[10] = "passenger car";

$car[20] = "land-rover";

$car[30] = "station-wagon";

$car[] = "victoria";

echo($car[31]);

?>

Альтернативный способ определения массивов состоит в использовании конструкции array():

<?

$car = array("passenger car","land-rover");

echo($car[1]); // выводит "land-rover"

?>

Для явного указания индексов в этом случае применяется оператор =>:

<?

$car = array("passenger car", 5 => "land-rover",

"station-wagon","victoria");

echo($car[0]); echo("<br>"); // выводит "passenger car"

echo($car[5]); echo("<br>"); // выводит "land-rover"

echo($car[6]); echo("<br>"); // выводит "station-wagon"

echo($car[7]); // выводит "victoria"

?>

Индексами массива могут быть и строки:

<?

$car = array("pc" => "passenger car", "lr" => "land-rover");

echo($car["lr"]); echo("<br>"); // выводит "land-rover"

echo($car["pc"]); // выводит "passenger car"

?>

Цикл foreach для обхода массивов

Обход массива в цикле в PHP4 можно организовать при помощи цикла foreach, который имеет следующий синтаксис:

foreach (array as [$key =>] $value)

{

statements;

}

Смысл этого цикла прост: при проходе каждого элемента массива в переменную $key помещается индекс этого элемента, а в переменную $value – его значение. Имена этих двух переменных совершенно произвольны.

Пример:

<?

$car = array("passenger car", "land-rover",

"station-wagon","victoria");

foreach($car as $index => $val)

{

echo("$index -> $val <br>");

}

?>

Как видно из синтаксиса, переменная $key необязательна и может быть опущена:

<?

echo(

"available cars: <br> <ul>"

);

$car = array("passenger car", "land-rover",

"station-wagon","victoria");

foreach($car as $val)

{

echo("<li>$val</li>\n");

}

echo("</ul>");

?>

Многомерные массивы

count() 

in_array() 

reset() 

Для инициализации многомерных массивов используются вложенные конструкции array(). Обход многомерных массивов достигается при помощи вложенных циклов. В следующем скрипте показан пример создания и обхода многомерного массива.

Пример:

<?

$ship = array(

"Passenger ship" => array("Yacht","Liner","Ferry"),

"War ship" => array("Battle-wagon","Submarine","Cruiser"),

"Freight ship" => array("Tank vessel","Dry-cargo ship","Container

cargo ship")

);

foreach($ship as $key => $type)

{

echo(

"<h2>$key</h2>\n"."<ul>\n");

foreach($type as $ship)

{

echo("\t<li>$ship</li>\n");

}

}

echo("</ul>\n");

?>

Результат выполнения этого скрипта:

Ну а теперь, будем рассматривать функции, которые есть в PHP для работы с массивами. И первое с чего мы начнем – это функции сортировки массивов. Однако до этого я еще скажу о трех функциях, которыми мы часто будем пользоваться в наших примерах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]