Курс — «Программирование на PHP8 для начинающих» — #11 Работа с массивами. Ассоциативные массивы
Здравствуйте, дорогие друзья.
Ассоциативные массивы в PHP позволяют хранить данные в виде пар «ключ-значение», где ключи могут быть строками. Это делает их особенно полезными для хранения и управления структурированными данными, такими как конфигурационные параметры, данные пользователей и многое другое. В этом разделе мы рассмотрим, как создавать и работать с ассоциативными массивами в PHP.
Создание ассоциативных массивов
Ассоциативные массивы создаются с использованием синтаксиса array()
или квадратных скобок []
. Ключи и значения указываются в виде пар.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php // Создание ассоциативного массива с использованием array() $person = array( "name" => "Alice", "age" => 30, "city" => "Kursk" ); // Создание ассоциативного массива с использованием квадратных скобок [] $car = [ "brand" => "Toyota", "model" => "Corolla", "year" => 2020 ]; ?> |
Доступ к элементам ассоциативного массива
Доступ к элементам ассоциативного массива осуществляется с использованием ключей.
1 2 3 4 5 6 7 8 9 10 11 |
<?php $person = [ "name" => "Alice", "age" => 30, "city" => "Kursk" ]; echo $person["name"]; // Вывод: Alice echo $person["age"]; // Вывод: 30 echo $person["city"]; // Вывод: Kursk ?> |
Добавление и изменение элементов
Элементы ассоциативного массива можно добавлять или изменять, используя ключи.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $person = [ "name" => "Alice", "age" => 30 ]; // Добавление нового элемента $person["city"] = "Kursk"; // Изменение существующего элемента $person["age"] = 31; print_r($person); // Вывод: Array ( [name] => Alice [age] => 31 [city] => Kursk ) ?> |
Удаление элементов
Элементы ассоциативного массива можно удалять с помощью функции unset()
.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $person = [ "name" => "Alice", "age" => 30, "city" => "Kursk" ]; // Удаление элемента unset($person["age"]); print_r($person); // Вывод: Array ( [name] => Alice [city] => Kursk ) ?> |
Перебор элементов ассоциативного массива
Для перебора элементов ассоциативного массива можно использовать цикл foreach
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $person = [ "name" => "Alice", "age" => 30, "city" => "Kursk" ]; foreach ($person as $key => $value) { echo "$key: $value\n"; } // Вывод: // name: Alice // age: 30 // city: Kursk ?> |
Функции для работы с ассоциативными массивами
PHP предоставляет множество встроенных функций для работы с ассоциативными массивами.
- Проверка наличия ключа:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $person = [ "name" => "Alice", "age" => 30, "city" => "Kursk" ]; if (array_key_exists("age", $person)) { echo "Ключ 'age' существует в массиве."; } ?> |
2. Проверка наличия значения:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $person = [ "name" => "Alice", "age" => 30, "city" => "Kursk ]; if (in_array(30, $person)) { echo "Значение 30 найдено в массиве."; } ?> |
3. Сортировка массива по ключам:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $person = [ "name" => "Alice", "age" => 30, "city" => "Kursk" ]; ksort($person); // Сортировка по ключам print_r($person); // Вывод: Array ( [age] => 30 [city] => Kursk [name] => Alice ) ?> |
4. Сортировка массива по значениям:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $person = [ "name" => "Alice", "age" => 30, "city" => "Kursk" ]; asort($person); // Сортировка по значениям print_r($person); // Вывод: Array ( [city] => Kursk [age] => 30 [name] => Alice ) ?> |
Пример использования ассоциативных массивов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<?php // Создание ассоциативного массива $student = [ "name" => "John", "age" => 20, "major" => "Computer Science", "gpa" => 3.8 ]; // Доступ к элементам массива echo "Имя студента: " . $student["name"] . "\n"; // Вывод: Имя студента: John echo "Возраст студента: " . $student["age"] . "\n"; // Вывод: Возраст студента: 20 // Добавление нового элемента $student["university"] = "MIT"; // Изменение существующего элемента $student["gpa"] = 3.9; // Удаление элемента unset($student["age"]); // Перебор элементов массива foreach ($student as $key => $value) { echo "$key: $value\n"; } // Вывод: // name: John // major: Computer Science // gpa: 3.9 // university: MIT // Проверка наличия ключа и значения if (array_key_exists("major", $student)) { echo "Ключ 'major' существует в массиве.\n"; } if (in_array("MIT", $student)) { echo "Значение 'MIT' найдено в массиве.\n"; } // Сортировка массива по ключам ksort($student); print_r($student); // Вывод: Array ( [gpa] => 3.9 [major] => Computer Science [name] => John [university] => MIT ) // Сортировка массива по значениям asort($student); print_r($student); // Вывод: Array ( [gpa] => 3.9 [major] => Computer Science [name] => John [university] => MIT ) ?> |
Ассоциативные массивы являются мощным инструментом в PHP для работы с данными, которые могут быть структурированы в виде пар «ключ-значение». Они предоставляют удобный способ хранения и управления сложными данными, а также поддерживают множество встроенных функций для работы с ними.
На этом все. Всем хорошего дня!
Цикл статей по курсу — «Программирование на PHP8 для начинающих».