Menu
Coddy logo textTech

Accéder aux valeurs par clé

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 à en récupérer les valeurs. Tout comme les tableaux indexés utilisent des positions numériques, les tableaux associatifs utilisent des clés entre crochets.

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

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

La syntaxe est $array["key"] : place la clé sous forme de chaîne entre les crochets, et PHP renvoie la valeur associée. C’est bien plus lisible que de se rappeler que le nom se trouve à l’index 0.

Vous pouvez également stocker la valeur récupérée dans une variable pour l’utiliser ultérieurement :

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

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

La clé doit correspondre exactement, y compris les majuscules et minuscules. Utiliser "Name" au lieu de "name" provoquerait une erreur, puisque PHP les traite comme des clés différentes.

Parfois, les données arrivent sous forme de chaîne JSON plutôt que de littéral de tableau PHP. JSON (JavaScript Object Notation) est un format texte courant pour représenter des données structurées. Par exemple :

$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';

La fonction intégrée json_decode() de PHP convertit une chaîne JSON en valeur PHP. Pour obtenir un tableau associatif, transmettez true comme deuxième argument :

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

Après avoir appelé json_decode($json, true), le résultat est un tableau associatif ordinaire et vous pouvez accéder à ses valeurs exactement de la même manière qu’à tout autre tableau associatif : en utilisant $array["key"].

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}).

Lisez ensuite deux autres entrées :

  • Une chaîne key1 représentant la première clé à consulter
  • Une chaîne key2 représentant la deuxième clé à consulter

Pour convertir la chaîne JSON en 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 plutôt qu’un objet. Une fois le JSON décodé, vous pouvez accéder aux valeurs par clé, comme avec n’importe quel tableau associatif, par exemple $array["title"].

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

  1. Accédez à la valeur associée à key1 et affichez-la
  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 distincte.

Exemple :

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

The Great Gatsby
F. Scott Fitzgerald

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

TechCo
999

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 afficher la valeur associée à $key1
// 3. Stocker la valeur associée à $key2 dans une variable appelée $info
// 4. Afficher 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

Entraînez-vous par vous-même : Compilateur PHP en ligne