PHP и MySQLГлава 4. Массивы.§ 4.1. Инициализация массивов.В PHP существует два способа инициализации массивов. Первый из них состоит в простом присвоении значений элементам массива: <? $person[] = "Бендер Остап Ибрагимович"; $person[] = "Корейко Александр Иванович"; // выводит "Корейко Александр Иванович" echo $person[1]; ?> Индекс массива можно указать явно: <? $person[0] = "Бендер Остап Ибрагимович"; $person[1] = "Корейко Александр Иванович"; // выводит "Корейко Александр Иванович" echo $person[1]; ?> Обратите внимание, что если при объявлении элементов массива смешиваются переменные с явной индексацией, и без индексации, то тому элементу, индекс которого не задан, PHP присвоит первый доступный индекс, после самого большого использованного до сих пор индекса. Например, если мы создадим массив с элементами, индексы которых будет равны, скажем, 10, 20 и 30, а потом создадим элемент, индекс которого явно не укажем, то ему автоматически присвоится индекс 31: <? $person[10] = "Бендер Остап Ибрагимович"; $person[20] = "Корейко Александр Иванович"; $person[30] = "Козлевич Адам Казимирович"; $person[] = "Паниковский Михаил Самуэлевич"; // выводит "Паниковский Михаил Самуэлевич" echo $person[31]; ?>
Альтернативный способ определения массивов состоит в использовании конструкции
<? $person = array( "Бендер Остап Ибрагимович", "Корейко Александр Иванович", "Козлевич Адам Казимирович" ); // выводит "Корейко Александр Иванович" echo $person[1]; ?>
Для явного указания индексов в этом случае применяется оператор <? $person = array( "Бендер Остап Ибрагимович", 5 => "Корейко Александр Иванович", "Козлевич Адам Казимирович", "Паниковский Михаил Самуэлевич" ); // выводит "Бендер Остап Ибрагимович" echo $person[0]."<br>\n"; // выводит "Корейко Александр Иванович" echo $person[5]."<br>\n"; // выводит "Козлевич Адам Казимирович" echo $person[6]."<br>\n"; // выводит "Паниковский Михаил Самуэлевич" echo $person[7]."<br>\n"; ?> Индексами массива могут быть и строки: <? $person = array( "prsn0" => "Бендер Остап Ибрагимович", "prsn1" => "Корейко Александр Иванович", "prsn2" => "Козлевич Адам Казимирович" ); // выводит "Бендер Остап Ибрагимович" echo $person["prsn0"]."<br>\n"; // выводит "Корейко Александр Иванович" echo $person["prsn1"]."<br>\n"; // выводит "Козлевич Адам Казимирович" echo $person["prsn2"]."<br>\n"; ?> § 4.2. Цикл foreach для обхода массивов.
Обход массива в цикле можно организовать при помощи цикла foreach (array as [$key =>] $value) { statements; }
Смысл этого цикла прост: при проходе каждого элемента массива в переменную
<? $person = array( "Бендер Остап Ибрагимович", "Корейко Александр Иванович", "Козлевич Адам Казимирович", "Паниковский Михаил Самуэлевич" ); echo "<table border='1'>\n"; foreach($person as $index => $val) { echo "<tr><td>".$index."</td><td>".$val."</td></tr>\n"; } echo "</table>\n"; ?>
Как видно из синтаксиса, переменная <? echo "<ul>\n" $person = array( "Бендер Остап Ибрагимович", "Корейко Александр Иванович", "Козлевич Адам Казимирович", "Паниковский Михаил Самуэлевич" ); foreach($person as $val) { echo "<li>".$val."</li>\n"; } echo "</ul>\n"; ?> § 4.3. Многомерные массивы.
Для инициализации многомерных массивов используются вложенные конструкции
<? $objects = array( "window" => array("open", "close", "alert"), "history" => array("back", "forward", "go(n)"), "location" => array("assign", "reload", "replace") ); echo "<h2>Объекты и методы JavaScript</h2>\n"; foreach($objects as $key => $methods) { echo "<h2>".$key."</h2>\n"; echo "<ul>\n"; foreach($methods as $val) { echo " <li>".$val."</li>\n"; } echo "</ul>\n"; } ?> Результат выполнения этого скрипта:: ![]() Ну а теперь, будем рассматривать функции, которые есть в PHP для работы с массивами. И первое с чего мы начнем — это функции сортировки массивов. Однако до этого рассмотрим еще три функции, которыми мы часто будем пользоваться в наших примерах. 4.3.1. Функция count()Синтаксис:int count(mixed var) Эта функция принимает в качестве аргумента массив и возвращает количество элементов в нем. 4.3.2. Функция in_array()Синтаксис:boolean in_array(mixed needle, array haystack [, bool strict])
Эта функция ищет в массиве 4.3.3. Функция reset()Синтаксис:mixed reset(array array)
Функция
Замечание. |
||