аватар |

Уроки / PHP /

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

1. Что такое массив PHP?
2. Пример массива PHP?
3. Одномерный массив (векторный)
- индексный
- ассоциативный
4. Двумерный массив (массив в массиве, матрица)
5. Функции для работы с массивами (массив в массиве, матрица)

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


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

Массив может быть другого типа, без какой-либо конкретики по пунктам. Будет только тема. Допустим, это web-прграммирование. А в качестве элементов будут языки - HTML, CSS, JavaScript, PHP, MySQL. Всего 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); // выстроит элементы в случайном порядке

Спасибо за внимание!
 



Похожие статьи


Комментарии к статье (vk.com)