Menu
Coddy logo textTech

Accessing Values by Key

Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 42 de 71.

Ahora que entiendes qué son los arrays asociativos, aprendamos cómo recuperar valores de ellos. Al igual que los arrays indexados usan posiciones numéricas, los arrays asociativos usan claves dentro de corchetes.

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

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

La sintaxis es $array["key"]—coloque la clave como una cadena dentro de los corchetes, y PHP devuelve el valor asociado. Esto es mucho más legible que recordar que el nombre está en el índice 0.

También puedes almacenar el valor recuperado en una variable para su uso posterior:

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

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

La clave debe coincidir exactamente, incluyendo las mayúsculas. Usar "Name" en lugar de "name" causaría un error, ya que PHP las trata como claves diferentes.

A veces los datos llegan como una cadena JSON en lugar de un literal de array de PHP. JSON (JavaScript Object Notation) es un formato de texto común para representar datos estructurados. Por ejemplo:

$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';

La función incorporada json_decode() de PHP convierte una cadena JSON en un valor de PHP. Para obtener un array asociativo, pasa 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
?>

Después de llamar a json_decode($json, true), el resultado es un array asociativo normal y puedes acceder a sus valores exactamente de la misma manera que a cualquier otro array asociativo, utilizando $array["key"].

challenge icon

Desafío

Fácil

Lee una línea de entrada que contiene un objeto JSON que representa la información de un libro (por ejemplo, {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Luego lee dos entradas más:

  • Una cadena key1 que representa la primera clave a la que acceder
  • Una cadena key2 que representa la segunda clave a la que acceder

Para convertir la cadena JSON en un array asociativo, utiliza la función incorporada json_decode() con true como segundo argumento:
$array = json_decode($jsonString, true);
El segundo argumento true le indica a PHP que devuelva un array asociativo en lugar de un objeto. Una vez decodificado, puedes acceder a los valores por clave como en cualquier array asociativo, por ejemplo, $array["title"].

Crea un array asociativo a partir de la entrada JSON, luego:

  1. Accede e imprime el valor asociado con key1
  2. Almacena el valor asociado con key2 en una variable llamada $info
  3. Imprime el valor almacenado en $info

Imprime cada resultado en una línea separada.

Ejemplo:

Si las entradas son {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title, y author, la salida debería ser:

The Great Gatsby
F. Scott Fitzgerald

Si las entradas son {"name": "Laptop", "brand": "TechCo", "price": 999}, brand, y price, la salida debería ser:

TechCo
999

Pruébalo tú mismo

<?php
// Lee la entrada JSON
$jsonInput = trim(fgets(STDIN));

// Lee las dos claves
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// TODO: Escribe tu código a continuación
// 1. Crea un array asociativo a partir de la entrada JSON usando json_decode
// 2. Accede e imprime el valor asociado con $key1
// 3. Almacena el valor asociado con $key2 en una variable llamada $info
// 4. Imprime el valor almacenado en $info

?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos