Menu
Coddy logo textTech

Acessando Valores por Chave

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 a recuperar valores deles. Assim como os arrays indexados usam posições numéricas, os 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 retornará 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 o uso de maiúsculas e minúsculas. Usar "Name" em vez de "name" causaria um erro, pois o PHP trata essas chaves como 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 integrada json_decode() do PHP converte uma string JSON em um valor PHP. Para obter um array associativo, passe true como 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
?>

Depois de chamar json_decode($json, true), o resultado é um array associativo comum, e você pode acessar seus valores exatamente da mesma maneira que em qualquer outro array associativo: usando $array["key"].

challenge icon

Desafio

Fácil

Leia uma linha de entrada contendo um objeto JSON que representa 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 segundo argumento:
$array = json_decode($jsonString, true);
O segundo argumento true informa ao PHP para retornar um array associativo em vez de um objeto. Depois de decodificados, os valores podem ser acessados por chave, assim como em qualquer array associativo, por exemplo, $array["title"].

Crie um array associativo a partir da entrada JSON e, 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 deverá ser:

The Great Gatsby
F. Scott Fitzgerald

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

TechCo
999
FORMATO DE SAÍDA OBRIGATÓRIO: [Seu conteúdo traduzido aqui]

Experimente você mesmo

<?php
// Ler a entrada JSON
$jsonInput = trim(fgets(STDIN));

// Ler 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

Pratique por conta própria: Compilador de PHP online