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, vamos a aprender cómo obtener valores de ellos. Al igual que los arrays indexados usan posiciones numéricas, los arrays asociativos usan claves dentro de corchetes cuadrados.

<?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 tarde:

<?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" causaría un error ya que PHP los trata como claves diferentes.

A veces los datos llegan como una cadena JSON en lugar de un array de PHP. JSON (JavaScript Object Notation) es un formato de texto común para representar datos estructurados. La función incorporada de PHP json_decode() convierte una cadena JSON en un valor de PHP. Cuando pasas true como el segundo argumento, devuelve un array asociativo en lugar de un objeto, por lo que puedes acceder a los valores con la sintaxis familiar $array["key"].

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

$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25
?>
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 (p. ej., {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Luego lee dos entradas más:

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

Para convertir la cadena JSON en un array asociativo, usa 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, p. ej. $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

Hoja de referencia

Para recuperar valores de un array asociativo, use la clave dentro de corchetes:

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

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

La sintaxis es $array["key"]. Las claves son sensibles a mayúsculas y minúsculas.

Puede almacenar los valores recuperados en variables:

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

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

Use json_decode($jsonString, true) para convertir una cadena JSON en un array asociativo. El segundo argumento true le indica a PHP que devuelva un array en lugar de un objeto:

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

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

Pruébalo tú mismo

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

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

// TODO: Escribe tu código a continuación
// 1. Crear un array asociativo a partir de la entrada JSON usando json_decode
// 2. Acceder e imprimir el valor asociado con $key1
// 3. Almacenar el valor asociado con $key2 en una variable llamada $info
// 4. Imprimir 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