Menu
Coddy logo textTech

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, pois o PHP os trata como chaves diferentes.

Às vezes, os dados chegam como uma string JSON em vez de um array PHP. JSON (Notação de Objetos JavaScript) é um formato de texto comum para representar dados estruturados. A função integrada do PHP json_decode() converte uma string JSON em um valor PHP. Quando você passa true como o segundo argumento, ela retorna um array associativo em vez de um objeto, para que você possa acessar os valores com a sintaxe familiar $array["key"].

<?php
$json = '{"name": "Alice", "age": 25}';

$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25
?>
challenge icon

Desafio

Fácil

Leia uma linha de entrada contendo um objeto JSON representando as informações de um livro (por exemplo, {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Em seguida, leia mais duas entradas:

  • Uma string key1 representando a primeira chave a ser acessada
  • Uma string key2 representando a segunda chave a ser acessada

Para converter a string JSON em um array associativo, use a função integrada json_decode() com true como o segundo argumento:
$array = json_decode($jsonString, true);
O segundo argumento true instrui o PHP a 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, em seguida:

  1. Acesse e imprima o valor associado a key1
  2. Armazene o valor associado a key2 em uma variável chamada $info
  3. 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 Fitzgerald

Se as entradas forem {"name": "Laptop", "brand": "TechCo", "price": 999}, brand e price, a saída deve ser:

TechCo
999

Folha de consulta

Para recuperar valores de um array associativo, use a chave dentro de colchetes:

$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

echo $person["name"]; // Alice
echo $person["age"];  // 25

A sintaxe é $array["key"]. As chaves são sensíveis a maiúsculas e minúsculas.

Você pode armazenar os valores recuperados em variáveis:

$product = [
    "title" => "Laptop",
    "price" => 999
];

$itemName = $product["title"];
echo $itemName; // Laptop

Use json_decode($jsonString, true) para converter uma string JSON em um array associativo. O segundo argumento true instrui o PHP a retornar um array em vez de um objeto:

$json = '{"name":"Alice","age":25}';
$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25

Experimente 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. Crie 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

?>
quiz iconTeste seus conhecimentos

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