Массивы
Массив хранит несколько значений под одним именем: список товаров, данные пользователя, строки таблицы. Это самая используемая структура данных в PHP.
Список
Простейший массив — список значений в квадратных скобках. У каждого элемента есть номер, или индекс, и счёт идёт с нуля:
<?php
$colors = ['красный', 'зелёный', 'синий'];
echo $colors[0]; // красныйКоличество элементов
Функция count() возвращает количество элементов массива:
<?php
$colors = ['красный', 'зелёный', 'синий'];
echo count($colors); // 3Индекс последнего элемента всегда на единицу меньше количества.
Добавление и изменение
Пустые квадратные скобки добавляют элемент в конец, а обращение по индексу заменяет существующий:
<?php
$colors = ['красный', 'зелёный', 'синий'];
$colors[] = 'жёлтый';
$colors[0] = 'белый';
echo implode(', ', $colors); // белый, зелёный, синий, жёлтыйФункция implode() склеивает элементы массива в строку через указанный разделитель.
Ассоциативный массив
Вместо номеров можно использовать свои ключи — обычно строки. Такой массив удобен для описания одного объекта:
<?php
$user = [
'name' => 'Анна',
'age' => 25,
];
echo $user['name']; // АннаПеребор
foreach умеет отдавать не только значение, но и ключ:
<?php
$user = ['name' => 'Анна', 'age' => 25];
foreach ($user as $key => $value) {
echo "$key: $value\n";
}Полезные функции
<?php
$numbers = [3, 1, 2];
sort($numbers);
echo implode(', ', $numbers), "\n"; // 1, 2, 3
echo array_sum($numbers), "\n"; // 6
var_dump(in_array(2, $numbers)); // bool(true)sort() упорядочивает сам массив, а не возвращает новый. in_array() проверяет, есть ли значение среди элементов.
Частая ошибка
Обращение к несуществующему ключу вызывает предупреждение Undefined array key. Если ключа может не быть, подставьте значение по умолчанию через ??:
<?php
$user = ['name' => 'Анна'];
echo $user['city'] ?? 'не указан'; // не указан