Accessing Values by Key
Часть раздела Основы путешествия по PHP на Coddy — урок 42 из 71.
Теперь, когда вы понимаете, что такое ассоциативные массивы, давайте научимся извлекать значения из них. Как и индексированные массивы используют числовые позиции, ассоциативные массивы используют ключи внутри квадратных скобок.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>Синтаксис — $array["key"]: поместите ключ в виде строки внутри скобок, и PHP вернёт связанное значение. Это гораздо читаемее, чем запоминать, что имя находится по индексу 0.
Вы также можете сохранить полученное значение в переменную для последующего использования:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>Ключ должен точно совпадать — включая регистр. Использование "Name" вместо "name" вызовет ошибку, поскольку PHP рассматривает их как разные ключи.
Иногда данные приходят в виде строки JSON, а не массива PHP. JSON (JavaScript Object Notation) — это распространённый текстовый формат для представления структурированных данных. Встроенная функция PHP json_decode() преобразует строку JSON в значение PHP. Когда вы передаёте true в качестве второго аргумента, она возвращает ассоциативный массив вместо объекта, чтобы вы могли обращаться к значениям с помощью знакомого синтаксиса $array["key"].
<?php
$json = '{"name": "Alice", "age": 25}';
$data = json_decode($json, true);
echo $data["name"]; // Alice
echo $data["age"]; // 25
?>Задание
ЛегкоПрочитайте строку ввода, содержащую JSON-объект, представляющий информацию о книге (например, {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
Затем прочитайте еще два ввода:
- Строка
key1, представляющая первый ключ для доступа - Строка
key2, представляющая второй ключ для доступа
Чтобы преобразовать JSON-строку в ассоциативный массив, используйте встроенную функцию json_decode() с true в качестве второго аргумента:
$array = json_decode($jsonString, true);
Второй аргумент true указывает PHP возвращать ассоциативный массив вместо объекта. После декодирования вы можете обращаться к значениям по ключу так же, как и в любом ассоциативном массиве, например $array["title"].
Создайте ассоциативный массив из JSON-ввода, затем:
- Получите и выведите значение, связанное с
key1 - Сохраните значение, связанное с
key2, в переменную с именем$info - Выведите значение, хранящееся в
$info
Выведите каждый результат на отдельной строке.
Пример:
Если вводы {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title и author, то вывод должен быть:
The Great Gatsby
F. Scott FitzgeraldЕсли вводы {"name": "Laptop", "brand": "TechCo", "price": 999}, brand и price, то вывод должен быть:
TechCo
999Шпаргалка
Чтобы получить значения из ассоциативного массива, используйте ключ в квадратных скобках:
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25Синтаксис: $array["key"]. Ключи чувствительны к регистру.
Вы можете сохранить полученные значения в переменные:
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // LaptopИспользуйте json_decode($jsonString, true) для преобразования JSON-строки в ассоциативный массив. Второй аргумент true указывает PHP возвращать массив вместо объекта:
$json = '{"name":"Alice","age":25}';
$data = json_decode($json, true);
echo $data["name"]; // Alice
echo $data["age"]; // 25Попробуйте сами
<?php
// Читаем JSON-входные данные
$jsonInput = trim(fgets(STDIN));
// Читаем два ключа
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// TODO: Напишите свой код ниже
// 1. Создайте ассоциативный массив из JSON-входных данных с помощью json_decode
// 2. Получите и выведите значение, связанное с $key1
// 3. Сохраните значение, связанное с $key2, в переменную $info
// 4. Выведите значение, хранящееся в $info
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators