Menu
Coddy logo textTech

Accessing Values by Key

Fait partie de la section Fondamentaux du Journey PHP de Coddy — leçon 42 sur 71.

Maintenant que vous comprenez ce que sont les tableaux associatifs, apprenons à récupérer des valeurs à partir d'eux. Tout comme les tableaux indexés utilisent des positions numériques, les tableaux associatifs utilisent des clés à l'intérieur de crochets.

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

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

La syntaxe est $array["key"]—placez la clé sous forme de chaîne à l'intérieur des crochets, et PHP retourne la valeur associée. Ceci est beaucoup plus lisible que de se souvenir que le nom est à l'index 0.

Vous pouvez également stocker la valeur récupérée dans une variable pour une utilisation ultérieure :

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

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

La clé doit correspondre exactement — y compris la casse. Utiliser "Name" au lieu de "name" provoquerait une erreur car PHP les traite comme des clés différentes.

Parfois, les données arrivent sous forme de chaîne JSON plutôt que de tableau PHP. JSON (JavaScript Object Notation) est un format de texte courant pour représenter des données structurées. La fonction intégrée de PHP json_decode() convertit une chaîne JSON en une valeur PHP. Quand vous passez true en tant que second argument, elle retourne un tableau associatif au lieu d'un objet, afin que vous puissiez accéder aux valeurs avec la syntaxe familière $array["key"].

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

$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25
?>
challenge icon

Défi

Facile

Lisez une ligne d'entrée contenant un objet JSON représentant les informations d'un livre (par exemple, {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Ensuite, lisez deux autres entrées :

  • Une chaîne key1 représentant la première clé à accéder
  • Une chaîne key2 représentant la seconde clé à accéder

Pour convertir la chaîne JSON en un tableau associatif, utilisez la fonction intégrée json_decode() avec true comme deuxième argument :
$array = json_decode($jsonString, true);
Le deuxième argument true indique à PHP de retourner un tableau associatif au lieu d'un objet. Une fois décodé, vous pouvez accéder aux valeurs par clé comme pour n'importe quel tableau associatif, par exemple $array["title"].

Créez un tableau associatif à partir de l'entrée JSON, puis :

  1. Accédez et affichez la valeur associée à key1
  2. Stockez la valeur associée à key2 dans une variable appelée $info
  3. Affichez la valeur stockée dans $info

Affichez chaque résultat sur une ligne séparée.

Exemple :

Si les entrées sont {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title et author, la sortie devrait être :

The Great Gatsby
F. Scott Fitzgerald

Si les entrées sont {"name": "Laptop", "brand": "TechCo", "price": 999}, brand et price, la sortie devrait être :

TechCo
999

Aide-mémoire

Pour récupérer des valeurs d'un tableau associatif, utilisez la clé entre crochets :

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

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

La syntaxe est $array["key"]. Les clés sont sensibles à la casse.

Vous pouvez stocker les valeurs récupérées dans des variables :

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

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

Utilisez json_decode($jsonString, true) pour convertir une chaîne JSON en tableau associatif. Le deuxième argument true indique à PHP de retourner un tableau au lieu d'un objet :

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

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

Essayez vous-même

<?php
// Lire l'entrée JSON
$jsonInput = trim(fgets(STDIN));

// Lire les deux clés
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// TODO: Écrivez votre code ci-dessous
// 1. Créer un tableau associatif à partir de l'entrée JSON en utilisant json_decode
// 2. Accéder et imprimer la valeur associée à $key1
// 3. Stocker la valeur associée à $key2 dans une variable appelée $info
// 4. Imprimer la valeur stockée dans $info

?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux