Массивы

Понятие

Массив — это ещё один тип данных, вроде числа или строки. Главное отличие массива от остальных типов данных заключается в его способности хранить в переменной больше одного значения. В предыдущих примерах имя переменной всегда ассоциировалось только с одним значением:

$name = “Иннокентий”
$age = 42

Но что, если у нас есть несколько однотипных записей? Например как параграфов текста в предыдущей версии страницы или несколько товаров на странице. Создавать переменную под каждую запись? А что если мы не знаем сколько этих записей заранее и каждый раз их количество меняется? Сохранение в переменную-массив нескольких значений выглядит так:

$recoreds = [“game of thrones”, “american horror story”, “walking dead”];
В этом примере мы сохранили в переменной $recoreds сразу три значения. Но сохранить эти данные — это только половина дела. Как с ними потом работать? Уже знакомый вам способ вывода переменной на экран не будет работать с массивами:

<?php
echo “Мои любимые сериалы: ” . $recoreds;
Так увидеть список любимых сериалов не получится. Дело в том, что массив — это не обычная переменная. Массив хранит не простые типы, вроде текста или чисел (их ещё называют «скалярными типами»), а более сложную структуру данных, поэтому здесь нужен особый подход.

Элементы массива

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

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

<?= 'Сериалы: '. $recoreds[0] .', '. $recoreds[1] .', '. $recoreds[2]?>


Теперь можно дать определение массива: Массив — это совокупность множества элементов вида «ключ: значение».

Массивы позволяют перезаписывать существующие значения и добавлять новые. Добавить новое значение в массив можно так:

$records[] = “the big bang theory”;
Новый элемент автоматически получит индекс равный максимальному индексу из существующих + 1. «Теория большого взрыва» сохранится в массиве под индексом 3.

Если нам перестал нравиться один из сериалов, так как новый сезон оказался очень плох или появился новый фаворит, значения в массиве можно заменить. Чтобы вычеркнуть старое значение и заменить его новым, нужно присвоить новое значение любому из существующих в массиве индексов:

$records[4] = “fargo”;
Для полного удаления (без замены на другое) значения по его индексу существует функция unset:

unset($records[4]);

Ассоциативные массивы

В предыдущем разделе мы познакомились с так называемыми простыми массивами. Но в PHP существует и чуть более сложный тип массивов — ассоциативные. Ассоциативные массивы отличаются от простых тем, что вместо индексов у них ключи. Если индекс всегда является целым, порядковым числом, то ключ может быть любой произвольной строкой.

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

Запись всей информации о пользователе с помощью ассоциативного массива:

<?php
$user = ['age' => 42, 'name' => 'Иннокентий', 'fav_shows' => ["game of thrones", "american horror story", "walking dead"] ];

Обратите внимание: массив может содержать другой массив в качестве одного из значений. В нашем примере мы поместили простой массив внутри ассоциативного под ключом fav_shows.

Вывод информации из ассоциативных массивов аналогичен простым массивам. Показ всей информации о пользователе из переменной $user:

<?php
echo "Имя: " . $user['name'] . " Возраст: " . $user['age'] . "
Любимые сериалы: "  . $user['fav_shows'][0] . ", " . $user['fav_shows'][1] . ", " . $user['fav_shows'][2];

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *