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"].
Desafío
FácilLee 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
key1que representa la primera clave a la que acceder - Una cadena
key2que 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:
- Accede e imprime el valor asociado con
key1 - Almacena 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 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
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators