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"].
Desafío
FácilLee 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
key1que represente la primera clave a la que se accederá - Una cadena
key2que 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:
- Accede al valor asociado con
key1e imprímelo - Guarda el valor asociado con
key2en una variable llamada$info - 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 FitzgeraldSi las entradas son {"name": "Laptop", "brand": "TechCo", "price": 999}, brand y price, la salida debería ser:
TechCo
999Prué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
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple7Arrays Parte 2 - Asociativos
Introducción a los arrays asociativosAcceder a valores por claveModificar valores por claveAñadir nuevos pares clave-valorComprobar si existe una claveRepaso - Almacén de datos clave-valor2Variables y tipos de datos
NúmerosCadenas y comillasBooleanosConvenciones de nombresRepaso: inicialización de variablesVariables vacíasConcatenación de cadenasObtener datos del usuarioConvertir a otros tipos5Lógica condicional
Sentencia ifIf - ElseEl operador ternarioOperador de coalescencia nulaSentencia switchRepaso - Tomar decisiones3Operadores básicos
Operadores aritméticosOperador móduloOperador de exponenciaciónAsignación combinadaIncremento/DecrementoPrecedencia de operadoresRepaso: cálculos simplesOperadores de cadenasPractica por tu cuenta: Compilador de PHP online