Menu
Coddy logo textTech

Acceder a valores por clave

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 a recuperar valores de ellos. Al igual que los arrays indexados utilizan posiciones numéricas, los arrays asociativos utilizan 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"]: coloca 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 usarlo más adelante:

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

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

La clave debe coincidir exactamente, incluida la capitalización. Usar "Name" en lugar de "name" provocaría un error, ya que PHP trata estas claves como 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: usando $array["key"].

challenge icon

Desafío

Fácil

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

Después, lee otras dos entradas:

  • Una cadena key1 que represente la primera clave a la que se accederá
  • Una cadena key2 que represente la segunda clave a la que se accederá

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

Crea un arreglo asociativo a partir de la entrada JSON y, después:

  1. Accede al valor asociado con key1 e imprímelo
  2. Guarda 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 debajo
// 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

Practica por tu cuenta: Compilador de PHP online