Асоціативні масиви в PHP: Повний огляд

Автор Dekez, Квт. 10, 2025, 03:06 PM

« попередня та - наступна тема »

Dekez


Асоціативні масиви є однією з найпотужніших і найгнучкіших структур даних у PHP. Вони дозволяють зберігати пари "ключ-значення", де ключі можуть бути рядками або числами, а значення — будь-яким типом даних, який підтримує PHP (числа, рядки, об'єкти, навіть інші масиви). У цій статті ми розглянемо, як створювати, використовувати та маніпулювати асоціативними масивами, а також додамо приклади коду та відповіді на поширені запитання (FAQs).

Що таке асоціативний масив?
Асоціативний масив у PHP — це тип масиву, де кожен елемент має унікальний ключ, який використовується для доступу до відповідного значення. На відміну від числових масивів, де індекси автоматично призначаються як числа (0, 1, 2...), в асоціативних масивах ви самі визначаєте ключі.

Приклад асоціативного масиву:

$student = [
    "ім'я" => "Олена",
    "вік" => 20,
    "спеціальність" => "Інформатика"
];



Як створювати асоціативні масиви?
У PHP є два основні способи створення асоціативних масивів:
  • Синтаксис із квадратними дужками:
$car = [];
$car["марка"] = "Toyota";
$car["модель"] = "Camry";
$car["рік"] = 2022;

  • Синтаксис із функцією array() або коротким записом []:
$car = array(
    "марка" => "Toyota",
    "модель" => "Camry",
    "рік" => 2022
);
// Або короткий запис:
$car = [
    "марка" => "Toyota",
    "модель" => "Camry",
    "рік" => 2022
];


Доступ до елементів асоціативного масиву
Для доступу до значень використовуйте ключ у квадратних дужках або фігурних дужках (у старих версіях PHP):
echo $car["марка"]; // Виведе: Toyota
echo $car["модель"]; // Виведе: Camry

Якщо ключа не існує, PHP поверне null і може видати попередження (залежно від налаштувань).

Маніпуляція асоціативними масивами
  • Додавання нового елемента:
$car["колір"] = "чорний";
  • Оновлення значення:
$car["рік"] = 2023;
  • Видалення елемента:
unset($car["модель"]);
  • Перевірка існування ключа:
if (array_key_exists("марка", $car)) {
    echo "Марка автомобіля: " . $car["марка"];
}


Ітерація по асоціативному масиву
Для перегляду всіх пар "ключ-значення" використовуйте цикл foreach:
$student = [
    "ім'я" => "Олена",
    "вік" => 20,
    "спеціальність" => "Інформатика"
];

foreach ($student as $key => $value) {
    echo "$key: $value<br>";
}

Виведення:
ім'я: Олена
вік: 20
спеціальність: Інформатика


Практичний приклад: Список контактів
Створимо асоціативний масив для зберігання інформації про контакти:
$contacts = [
    "Олег" => [
        "телефон" => "+380671234567",
        "email" => "[email protected]"
    ],
    "Марія" => [
        "телефон" => "+380681234567",
        "email" => "[email protected]"
    ]
];

// Виведення інформації про Олега
echo "Телефон Олега: " . $contacts["Олег"]["телефон"] . "<br>";
echo "Email Олега: " . $contacts["Олег"]["email"];

Виведення:
Телефон Олега: +380671234567
Email Олега: [email protected]


FAQ: Поширені запитання
1. Чи можуть ключі асоціативного масиву повторюватися?
Ні, ключі в асоціативному масиві унікальні. Якщо ви додасте елемент із уже існуючим ключем, старе значення буде перезаписано.

2. Як перевірити, чи масив порожній?
Використовуйте функцію empty():
$array = [];
if (empty($array)) {
    echo "Масив порожній!";
}


3. Чи можна використовувати числа як ключі в асоціативних масивах?
Так, ключі можуть бути як рядками, так і числами:
$data = [
    1 => "Один",
    "два" => 2
];

4. Як об'єднати два асоціативні масиви?
Використовуйте оператор + або функцію array_merge():
$array1 = ["a" => 1];
$array2 = ["b" => 2];
$merged = array_merge($array1, $array2);
print_r($merged); // Виведе: ["a" => 1, "b" => 2]

5. Як відсортувати асоціативний масив за ключами?
Використовуйте ksort() для сортування за ключами:
$array = ["яблуко" => 5, "банан" => 2];
ksort($array);
print_r($array); // Виведе: ["банан" => 2, "яблуко" => 5]


Висновок
Асоціативні масиви в PHP — це незамінний інструмент для роботи з даними, який дозволяє гнучко зберігати та обробляти інформацію. Завдяки простоті синтаксису та широким можливостям маніпуляції, вони підходять як для початківців, так і для досвідчених розробників. Спробуйте попрактикуватися з прикладами вище, щоб краще освоїти цю тему!