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
?>Desafío
FácilLee 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
key1que representa la primera clave para acceder - Una cadena
key2que 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:
- 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
999Hoja 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"]; // 25La 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; // LaptopUse 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"]; // 25Prué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
?>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