На 11 уроке мы погрузимся в мир ассоциативных массивов PHP, мощного инструмента для структурирования данных. Если вы уже работали с обычными массивами, то ассоциативные массивы покажутся вам более гибкими и удобными.
Что такое ассоциативные массивы?
Ассоциативный массив это коллекция элементов, где каждый элемент имеет уникальный ключ (чаще строка) и значение. Ключи здесь не случайны: они задаются вами и несут смысловую нагрузку. Например:
$user = [ 'name' => 'Иван', 'age' => 30, 'email' => 'ivan@example.com' ];
Здесь 'name'
, 'age'
и 'email'
— ключи, а 'Иван'
, 30
и 'ivan@example.com'
— их значения.
Создание ассоциативного массива
Способ 1: Используя синтаксис []
$book = [ 'title' => 'PHP для начинающих', 'author' => 'Максим Габов', 'price' => 1500 ];
Способ 2: Функция array()
$car = array( 'brand' => 'Toyota', 'model' => 'Camry', 'year' => 2022 );
Работа с ключами и значениями
Доступ к элементам
Чтобы получить значение, обратитесь по ключу:
echo $user['name']; // Выведет: Иван
Добавление элементов
Просто присвойте новому ключу значение:
$user['phone'] = '+7 900 123-45-67';
Изменение элементов
Перезапишите значение по ключу:
$user['age'] = 31; // Теперь возраст 31
Удаление элементов
Используйте unset()
:
unset($user['email']); // Удалит элемент с ключом 'email'
Функции для работы с массивами
1. array_keys()
— получить все ключи массива
$keys = array_keys($user); print_r($keys); // Выведет: Array ( [0] => name [1] => age [2] => phone )
2. array_values()
— получить все значения
$values = array_values($user); print_r($values); // Выведет: Array ( [0] => Иван [1] => 31 [2] => +7 900 123-45-67 )
3. array_merge()
— объединение массивов
$userInfo = [ 'country' => 'Россия', 'city' => 'Москва' ]; $mergedArray = array_merge($user, $userInfo); print_r($mergedArray);
4. array_key_exists()
— проверка существования ключа
if (array_key_exists('email', $user)) { echo 'Email существует!'; } else { echo 'Email не найден.'; }
5. in_array()
— проверка существования значения
if (in_array('Иван', $user)) { echo 'Иван есть в массиве!'; }
6. foreach
— итерация по массиву
foreach ($user as $key => $value) { echo "$key: $value <br>"; } // Выведет: // name: Иван // age: 31 // phone: +7 900 123-45-67
Практические задачи
Задача 1: Создание и вывод данных
Создайте массив $student
с ключами: name
, course
, subject
. Заполните его данными и выведите через foreach
.
Решение:
$student = [ 'name' => 'Анна', 'course' => 2, 'subject' => 'Программирование' ]; foreach ($student as $key => $value) { echo ucfirst($key) . ": $value <br>"; }
Задача 2: Фильтрация массива
Дан массив товаров:
$products = [ 'laptop' => 50000, 'mouse' => 1500, 'keyboard' => 3000, 'monitor' => 12000 ];
Выведите товары, цена которых выше 2000 рублей.
Решение:
foreach ($products as $product => $price) { if ($price > 2000) { echo "$product: $price руб. <br>"; } }
Задача 3: Объединение данных
Объедините два массива:
$userData1 = ['name' => 'Максим', 'age' => 28]; $userData2 = ['city' => 'Самара', 'job' => 'Разработчик'];
Выведите результат.
Решение:
$mergedUser = array_merge($userData1, $userData2); print_r($mergedUser);
Советы
- Всегда проверяйте существование ключа через
array_key_exists()
, чтобы избежать ошибок. - Используйте осмысленные ключи:
'user_age'
лучше, чем'age1'
. - Комбинируйте функции: например,
array_keys()
+foreach
для гибкой обработки.
Частые ошибки
- Обращение к несуществующему ключу
echo $user['address']; // Ошибка, если ключа 'address' нет.
- Путаница между
array_key_exists()
иisset()
isset()
возвращаетfalse
, если значениеnull
, аarray_key_exists()
— нет.
Теперь вы умеете работать с ассоциативными массивами. Практикуйтесь и скоро эти структуры станут вашими надежными помощниками.
Хотите продолжить обучение? Перейти к полному курсу по PHP для начинающих