Урок 7. Массивы в PHP

Урок 7. Массивы в PHP

Coding

Что такое массив PHP?

Начать данную тему хотелось бы с отречённых примеров. Допустим, мы рассматриваем какого-либо человека. У него есть имя, фамилия, адрес, телефон, пол, рост, цвет глаз и так далее. Информацию по всем этим пунктам можно отнести к массиву данных о человеке. 


Массив может быть другого типа, без какой-либо конкретики по пунктам. Будет только тема. Допустим, это web-прграммирование. А в качестве элементов будут языки - HTMLCSSJavaScriptPHPMySQL. Всего 5 элементов. 


Исходя из последнего примера предположим массив:


web-программирование

1. HTML

2. CSS

3. JavaScript

4. PHP

5. MySQL


Теперь смотрим на данный пример и анализируем основные понятия.


Массив в PHP - это набор последовательно расположенных однотипных данных, связанных общей тематикой, число элементов которого фиксировано. 


Массив в данном примере будет называться web-программирование.


У каждого элемента есть своё порядковое место, идентификатор.

Индекс (ключ массива) - либо порядковый номер, либо текстовое значение, по которому можно идентифицировать элемент.


Индексами в примере выше будут числовые значение от 1 до 5. При обращении к индексу 2 мы увидим CSS.


Пример массива в PHP


Теперь давайте рассмотрим вышеуказанный пример в синтаксисе PHP, а не русского языка. Допустим массив будет называться короче - web. В квадратных скобках [] будет вставлять индекс. 


В качестве него могут быть либо числовые значения, которые рекомендую вставлять по порядку, либо текстовые значения (латинницей) и обязательно в кавычках.


Давайте рассмотрим простой пример массива, где в значении индексов будут числовые значения, а создавать массив будем так, словно переменным присваиваем значения.


$web[1]='HTML';
$web[2]='CSS';
$web[3]='JavaScript';
$web[4]='PHP';
$web[5]='MySQL';

$web; // данная переменная содержит массив с 5-ю элементами

// чтобы вывести один из элементов массива достаточно указать индекс в массиве
echo $web[4]; // выведет PHP



Одномерный массив


ИНДЕКСНЫЙ МАССИВ


Выше, с web-программированием, мы рассмотрели как раз пример одномерного массива.

Таким способом он создаётся редко. Он скорее наглядно показывает структуру массива. Чаще прибегают к другому методу. 


$web=array('HTML','CSS','JavaScript','PHP','MySQL');
echo $web[0]; // выведет 'HTML'
echo $web[2]; // выведет 'JavaScript'
echo $web[3]; // выведет 'PHP'


Если не указать индекс, то заполнение значений индекса идёт с 0 (нуля). Первый элемент имеет индекс 0, второй 1, третий 2 и так далее. Более того, все счётчики программирования начинают отсчёт с нуля.


Если Вы хотите задать значения индекса, то их надо указать следующим образом. Знак =>является указателем для присваивания индекса значению или наоборот значению индекс.


$web=array(1=>'HTML',2=>'CSS',3=>'JavaScript',4=>'PHP',5=>'MySQL');
echo $web[1]; // HTML
echo $web[2]; // CSS
echo $web[4]; // PHP


В примере отсчёт начинается с 1. Переменная с индексом 0 вследствие этого пустая.


В следующем примере мы не будем указывать индекс.


$day[]='Понедельник'; // индекс 0
$day[]='Вторник'; // 1
$day[]='Среда'; // 2
$day[]='Четверг'; // 3
$day[]='Пятница'; // 4


Можно проследить, что происходит последовательное заполнение с нуля. 


АССОЦИАТИВНЫЙ МАССИВ


Зачастую возникает потребность в создании буквенного индекса для элемента массива. Как я упоминал выше, такой индекс должен состоять из латинских букв, а имя должно быть заключено в кавычки. Рассмотрим на примере человека.


$user['nick']='Logic';
$user['name']='Павел';
$user['age']='25';
$user['sex']='Мужской';

$user; // переменная $user содержит массив с 4-мя элементами с буквенными индексами

// выводим элемент массива, указывая его буквенный индекс
echo $web['name']; // выведет 'Павел'


Как видите, всё достаточно просто. Только значение индекса закавычиваем.


Двумерный массив

Если говорить проще, то это массив в массиве. То есть элементов большого массива является другой. Подобные массивы очень тормозят работу скрипта, загружая оперативную память, поэтому для быстрой обработки подобных групп данных созданы Базы Данных , но о ней позже. Давайте разберём пример двумерного массива. 


 <?php
// массив с названиями Частей Света 
$m = array('Европа','Азия','Африка','Америка','Австралия и Океания'); 

// массив с названиями Стран
$s = array('Россия','Украина','Беларусь','Казахстан'); 

// массив с названиями Столиц 
$с = array('Москва','Киев','Минск','Астана'); 

// создаём двумерный массив География 
$geography = array($m, $s, $с);
?>


Во включенных массивах, как Вы обратили внимание, может быть разное количество элементов. Из части про одномерные массивы следовало, что у каждого элемента массива может быть индекс. Так давайте для каждого включённого массива присвоим своё значение.


Для этого расширим последнюю строчку и напишем её следующим образом.


$geography = array('Части Света'=>$m, 'Страны'=>$s, 'Столицы'=>$с);



Функции работы с массивами php


Foreach - циклическая функция для работы с массивами, в которой количество циклов равно количеству элементов массива.


Имеет следующий вид. Код PHP 


foreach (массив as $ключ=>$значение)
команды;


Ну и сразу пример работы


<?php

// создаём массив со знаменитыми IT
$names["Ритчи"] = "Деннис";
$names["Томпсон"] = "Кен";
$names["Гейтс"] = "Билл";
$names["Джобс"] = "Стив";

foreach ($names as $key => $value) {
echo "$value $key";
}
?>


На экран скрипт выведет


Деннис Ритчи

Кен Томпсон

Билл Гейтс

Стив Джобс


Count - функция, возвращающая количество элементов в массиве.


echo count($names); // в нашем примере с IT вернёт значение 4


Sort - функция, сортирующая элементы массива. Удобна в случае числовых значений индекса.

Arsort - функция, сортирующая элементы массива в обратном порядке. 


sort($names); // сортирует по порядку. Удобно если в Индексе числа 
arsort($names); // сортировать в обратном порядке. То есть по индексам элементы будут в порядке 3, 2, 1, 0


Unset - функция, удаляющая элемент массива.


unset($massiv[2]); // удаление элемента массива с индексом 2
unset($massiv); // удаление массива целиком


Array_search - функция поиска в массиве. Имеет два аргумента. Проще говоря, имеет вил array_search('что', где)


$animals[1]='dog';
$animals[2]='cat';
$animals[3]='bird';
echo array_search('cat',$animals); // выведет индекс элемента - цифру 2


Shuffle - функция, которая перемешивает ключи значений массива. 


shuffle($animals); // выстроит элементы в случайном порядке


Report Page