Accessing Values by Key
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 42 de 71.
Agora que você entende o que são arrays associativos, vamos aprender como recuperar valores deles. Assim como arrays indexados usam posições numéricas, arrays associativos usam chaves dentro de colchetes.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>A sintaxe é $array["key"]—coloque a chave como uma string dentro dos colchetes, e o PHP retorna o valor associado. Isso é muito mais legível do que lembrar que o nome está no índice 0.
Você também pode armazenar o valor recuperado em uma variável para uso posterior:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>A chave deve corresponder exatamente — incluindo a capitalização. Usar "Name" em vez de "name" causaria um erro, já que o PHP as trata como chaves diferentes.
Às vezes, os dados chegam como uma string JSON em vez de um literal de array PHP. JSON (JavaScript Object Notation) é um formato de texto comum para representar dados estruturados. Por exemplo:
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';A função nativa do PHP json_decode() converte uma string JSON em um valor PHP. Para obter um array associativo, passe true como o segundo argumento:
<?php
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';
$book = json_decode($json, true);
echo $book["title"]; // Dune
echo $book["author"]; // Frank Herbert
echo $book["year"]; // 1965
?>Após chamar json_decode($json, true), o resultado é um array associativo comum e você pode acessar seus valores exatamente da mesma forma que qualquer outro array associativo — usando $array["key"].
Desafio
FácilLeia uma linha de entrada contendo um objeto JSON que representa as informações de um livro (ex: {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
Em seguida, leia mais duas entradas:
- Uma string
key1representando a primeira chave a ser acessada - Uma string
key2representando a segunda chave a ser acessada
Para converter a string JSON em um array associativo, use a função nativa json_decode() com true como o segundo argumento:
$array = json_decode($jsonString, true);
O segundo argumento true diz ao PHP para retornar um array associativo em vez de um objeto. Uma vez decodificado, você pode acessar os valores pela chave como em qualquer array associativo, por exemplo, $array["title"].
Crie um array associativo a partir da entrada JSON e, em seguida:
- Acesse e imprima o valor associado a
key1 - Armazene o valor associado a
key2em uma variável chamada$info - Imprima o valor armazenado em
$info
Imprima cada resultado em uma linha separada.
Exemplo:
Se as entradas forem {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title, e author, a saída deve ser:
The Great Gatsby
F. Scott FitzgeraldSe as entradas forem {"name": "Laptop", "brand": "TechCo", "price": 999}, brand, e price, a saída deve ser:
TechCo
999Experimente você mesmo
<?php
// Lê a entrada JSON
$jsonInput = trim(fgets(STDIN));
// Lê as duas chaves
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// TODO: Escreva seu código abaixo
// 1. Cria um array associativo a partir da entrada JSON usando json_decode
// 2. Acesse e imprima o valor associado a $key1
// 3. Armazene o valor associado a $key2 em uma variável chamada $info
// 4. Imprima o valor armazenado em $info
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
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