Двумерные ассоциативные массивы
Часть раздела Логика и управление потоком путешествия по PHP на Coddy. Урок 31 из 68.
Хотя вы работали с двумерными массивами, используя числовые индексы, вы также можете создавать более структурированные данные, используя массивы associative как на основном уровне, так и внутри вложенных массивов. В этом подходе вместо чисел используются строковые ключи, что делает ваши data гораздо более описательными и понятными.
Вот как создать двумерный ассоциативный массив, в котором у каждого элемента есть содержательные строковые ключи:
<?php
$students = [
"alice" => [
"name" => "Alice Johnson",
"grade" => 92
],
"bob" => [
"name" => "Bob Smith",
"grade" => 87
],
"charlie" => [
"name" => "Charlie Brown",
"grade" => 95
]
];
?>Вы также можете сочетать подходы, используя числовые индексы для основного массива и сохраняя внутри ассоциативные массивы:
<?php
$users = [
["username" => "john_doe", "email" => "john@example.com"],
["username" => "jane_smith", "email" => "jane@example.com"]
];
?>Эта структура невероятно эффективна для организации сложных данных, таких как профили пользователей, каталоги продуктов или любые сценарии, в которых необходимо хранить несколько связанных свойств для каждого элемента. Строковые ключи делают ваш код самодокументируемым и значительно упрощают его сопровождение по сравнению с запоминанием числовых позиций.
Задание
ЛегкоТы получишь один входной параметр: двумерный associative-массив, представляющий inventory product в формате JSON. Каждый product имеет уникальный ID product в качестве ключа, а значением является associative-массив, содержащий "name" и "price" product. Прочитай входные данные, преобразуй строку JSON в двумерный associative-массив, пройди через все products и выведи информацию о каждом product в формате: ID: [product_id] - Name: [name] - Price: $[price]
Каждый product должен быть выведен в отдельной строке.
Формат входных данных: Одна строка, содержащая объект JSON, представляющий inventory product (example: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})
Ожидаемый вывод: Каждый product выводится в отдельной строке в формате ID: [product_id] - Name: [name] - Price: $[price]
Попробуйте сами
<?php
// Прочитать JSON-ввод
$input = fgets(STDIN);
// Преобразовать JSON в ассоциативный массив
$inventory = (array)json_decode($input, true);
// TODO: Напишите ваш код ниже, чтобы перебрать инвентарь и вывести каждый продукт
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеровПотренируйтесь самостоятельно: Онлайн-компилятор PHP