Menu
Coddy logo textTech

Accedere ai valori tramite chiave

Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 42 di 71.

Ora che hai capito cosa sono gli array associativi, impariamo come recuperarne i valori. Proprio come gli array indicizzati usano posizioni numeriche, gli array associativi usano chiavi tra parentesi quadre.

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

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

La sintassi è $array["key"]: inserisci la chiave come stringa tra parentesi quadre e PHP restituisce il valore associato. Questo è molto più leggibile che ricordare che il nome si trova all’indice 0.

Puoi anche memorizzare il valore recuperato in una variabile per usarlo in seguito:

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

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

La chiave deve corrispondere esattamente, comprese le maiuscole e le minuscole. Usare "Name" invece di "name" causerebbe un errore, poiché PHP le considera chiavi diverse.

A volte i dati arrivano come stringa JSON invece che come literal di array PHP. JSON (JavaScript Object Notation) è un formato testuale comune per rappresentare dati strutturati. Per esempio:

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

La funzione integrata json_decode() di PHP converte una stringa JSON in un valore PHP. Per ottenere un array associativo, passa true come secondo argomento:

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

Dopo aver chiamato json_decode($json, true), il risultato è un normale array associativo e puoi accedere ai suoi valori esattamente come faresti con qualsiasi altro array associativo: usando $array["key"].

challenge icon

Sfida

Facile

Leggi una riga di input contenente un oggetto JSON che rappresenta le informazioni di un libro (ad es., {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Poi leggi altri due input:

  • Una stringa key1 che rappresenta la prima chiave da accedere
  • Una stringa key2 che rappresenta la seconda chiave da accedere

Per convertire la stringa JSON in un array associativo, usa la funzione integrata json_decode() con true come secondo argomento:
$array = json_decode($jsonString, true);
Il secondo argomento true indica a PHP di restituire un array associativo invece di un oggetto. Una volta decodificato, puoi accedere ai valori tramite chiave, proprio come in qualsiasi array associativo, ad es. $array["title"].

Crea un array associativo dall'input JSON, poi:

  1. Accedi al valore associato a key1 e stampalo
  2. Memorizza il valore associato a key2 in una variabile chiamata $info
  3. Stampa il valore memorizzato in $info

Stampa ogni risultato su una riga separata.

Esempio:

Se gli input sono {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title e author, l'output dovrebbe essere:

The Great Gatsby
F. Scott Fitzgerald

Se gli input sono {"name": "Laptop", "brand": "TechCo", "price": 999}, brand e price, l'output dovrebbe essere:

TechCo
999

Provalo tu

<?php
// Leggi l'input JSON
$jsonInput = trim(fgets(STDIN));

// Leggi le due chiavi
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// TODO: Scrivi il tuo codice qui sotto
// 1. Crea un array associativo dall'input JSON usando json_decode
// 2. Accedi al valore associato a $key1 e stampalo
// 3. Memorizza il valore associato a $key2 in una variabile chiamata $info
// 4. Stampa il valore memorizzato in $info

?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore PHP online