Глава 5. Массивы в PHP
Массивы — одна из самых часто используемых структур данных в PHP. Через них передаются настройки, результаты SQL-запросов, списки товаров, меню сайта, параметры формы и ответы API. Если хорошо понять массивы, большая часть обычной PHP-разработки станет заметно проще.
Создание массива
Индексированный массив хранит значения по числовым ключам. Если ключи не указаны, PHP назначает их автоматически с нуля.
$languages = ['PHP', 'JavaScript', 'SQL'];
echo $languages[0]; // PHP
Ассоциативные массивы
Ассоциативный массив использует строковые ключи. Это удобно для хранения данных пользователя, настроек или параметров страницы.
$user = [
'name' => 'Алексей',
'role' => 'admin',
'active' => true,
];
echo $user['name'];
Многомерные массивы
Многомерный массив — это массив внутри массива. Обычно так хранят список записей: новости, товары, пользователей, комментарии.
$posts = [
['title' => 'Первая статья', 'views' => 120],
['title' => 'Вторая статья', 'views' => 80],
];
echo $posts[0]['title'];
Перебор массива
Для вывода элементов чаще всего используется foreach. Он читабелен и безопаснее ручного перебора по индексам, особенно если массив ассоциативный.
foreach ($posts as $post) {
echo '<h2>' . htmlspecialchars($post['title']) . '</h2>';
}
Добавление и удаление элементов
Добавить элемент можно через пустые квадратные скобки. Удаление выполняется функцией unset(). Важно помнить, что unset() не пересчитывает числовые ключи автоматически.
$languages[] = 'Python';
unset($languages[1]);
Поиск и проверка ключей
Для проверки существования ключа лучше использовать array_key_exists() или isset(). Разница важна: isset() вернёт false, если значение равно null.
if (array_key_exists('role', $user)) {
echo 'Роль указана';
}
Сортировка
PHP содержит много функций сортировки. sort() пересчитывает числовые ключи, asort() сохраняет связи ключ-значение, ksort() сортирует по ключам. В реальных проектах нужно выбирать функцию исходя из структуры данных.
$prices = ['basic' => 100, 'pro' => 300, 'free' => 0];
asort($prices);
Практический пример
Ниже простой пример подготовки списка пунктов меню. Такой подход легко расширить: добавить URL, CSS-класс, права доступа или активный пункт.
$menu = [
['title' => 'Главная', 'url' => '/'],
['title' => 'Учебник PHP', 'url' => '/uchebnik-php-soderzhanie.html'],
];
foreach ($menu as $item) {
echo '<a href="' . htmlspecialchars($item['url']) . '">' .
htmlspecialchars($item['title']) .
'</a>';
}
Типичные ошибки
- Обращение к несуществующему ключу без проверки.
- Смешивание числовых и строковых ключей без необходимости.
- Хранение сложной бизнес-логики прямо внутри массива настроек.
- Вывод данных из массива без htmlspecialchars().
Итоги
Массивы в PHP — базовый инструмент для хранения и передачи данных. Начинающему разработчику важно уверенно работать с индексированными, ассоциативными и многомерными массивами, понимать foreach, проверку ключей и сортировку. Эти навыки пригодятся в любой CMS, API или самописном проекте.