Определение массиваРано или поздно каждому программисту приходится сталкиваться с таким понятием как массив. Массивом можно считать разновидность переменных, в котором храниться несколько значений. Массив определяется при помощи конструкции array(), в круглых скобках которой указываются его значения: $arr = array('PHP', 'MySQL', 'Apache'); ?>
или $arr[] = "PHP"; $arr[] = "MySQL"; $arr[] = "Apache"; ?>
В C-подобных языках программирования, индекс массива традиционно начинается с 0. Это означает, что если мы захотим вывести первое значение массива "PHP", нам потребуется обратиться к нулевому индексу: echo $arr[0]; // PHP ?>
Если требуется начать массив с другого индекса, например, с 1, то необходимо явно это указать в конструкцииarray(): $arr = array(1 => "PHP", 2 => "MySQL", 3 => "Apache"); ?>
или $arr[1] = "PHP"; $arr[2] = "MySQL"; $arr[3] = "Apache"; ?>
Элементы массива можно использовать в двойных кавычках как обычные переменные, так код echo "$arr[1] $arr[2] $arr[3]"; ?>
или через цикл: for ($i = 1; $i <= 3; $i++) { echo $arr[$i]." "; } ?>
Следует заметить, что число элементов в массиве не обязательно знать заранее — его можно вычислить при помощи функции count(): for ($i = 1; $i <= count($arr); $i++) { echo $arr[$i]." "; } ?>
Выведет строку "PHP MySQL Apache". В качестве индексов массива могут выступать не только числа, но и строки: $arr = array("first" => "PHP", "second" => "MySQL", "third" => "Apache"); ?>
или $arr["first"] = "PHP"; $arr["second"] = "MySQL"; $arr["third"] = "Apache"; ?>
В этом случае массив называется ассоциативным, а его индексы называются ключами. Для вывода элемента массива в строке кавычки (ни двойные, ни одинарные) указывать не следует: echo "$arr[first] $arr[second] $arr[third]"; ?>
Так как у ассоциативных массивов нет индексов, для обхода их введён специальный вид цикла — foreach: foreach($arr as $key => $value) { echo "$key = $value "; } ?>
В результате работы цикла будет выведено три строки first = PHP second = MySQL third = Apache
Конструкция "$key =>", позволяющая получить доступ к ключу массива на каждом из циклов является не обязательно и может быть опущена: foreach($arr as $value) { echo "$value "; } ?>
Ряд функций, также позволяют возвращать массивы, например, функция file(), которая читает файл и возвращает его содержимое в виде массива. Каждый элемент массива соответствует одной строке. $arr = file("text.txt"); for($i = 0; $i < count($arr); $i++) { echo $arr[$i]." "; } ?>
Другой полезной функцией является функция explode(), которая позволяет разбить строку на несколько фрагментов, каждый из которых помещается в отдельный элемент массива: $str = "345|mail@mail.ru|http://www.softtime.ru|login|password"; $arr = explode("|",$str); for($i = 0; $i < count($arr); $i++) { echo $arr[$i]." "; } ?>
Результат работы скрипта может выглядеть следующим образом: 345 mail@mail.ru http://www.softtime.ru login password
Существует и обратная функция — implode(), которая объединяет, элементы массива в строку, используя для этого заданный разделитель: $arr[] = "345"; $arr[] = "mail@mail.ru"; $arr[] = "http://www.softtime.ru"; $arr[] = "login"; $arr[] = "password"; $str = implode("##",$arr); echo $str; //345##mail@mail.ru##http://www.softtime.ru##login##password ?>
ЗамечаниеВообще функций, которые потрошат строку превеликое множество, рассмотрение всех их выходят за рамки данной статьи. Удалить отдельный элемент массива можно при помощи функции unset(), а проверить существование массива можно при помощи функции isset(). Определим массив из 10 элементов и уничтожим каждый чётный элемент. $arr = array(9, 8, 7, 6, 5, 4, 3, 2, 1, 0); unset($arr[0], $arr[2], $arr[4], $arr[6], $arr[8]); // Проверяем существуют ли элементы массива for($i = 0; $i < 10; $i++) { if(isset($arr[$i])) echo "Элемент $arr[$i] определён "; else echo "Элемент $arr[$i] не определён "; } ?>
Результатом работы скрипта из будут следующие строки Элемент $arr[0] не определён Элемент $arr[1] определён Элемент $arr[2] не определён Элемент $arr[3] определён Элемент $arr[4] не определён Элемент $arr[5] определён Элемент $arr[6] не определён Элемент $arr[7] определён Элемент $arr[8] не определён Элемент $arr[9] определён
При помощи функции unset() можно уничтожить весть массив сразу. $arr = array(9, 8, 7, 6, 5, 4, 3, 2, 1, 0); unset($arr); if(isset($arr)) echo "Массив определён"; else echo "Массив не определён"; ?>
До этого массивы выводились при помощи цикла, однако в PHP предусмотрена специальная функция для вывода дампа массива print_r(). Функция ориентирована на вывод в консольный поток, поэтому при выводе результатов в окно браузера лучше обрамить её тэгами <pre> и </pre>: $arr[] = "345"; $arr[] = "mail@mail.ru"; $arr[] = "http://www.softtime.ru"; $arr[] = "login"; $arr[] = "password"; echo " "; print_r($arr); echo " "; ?>Результат работы скрипта выглядит следующим образом: Array ( [0] => 345 [1] => mail@mail.ru [2] => http://www.softtime.ru [3] => login [4] => password )
|