Salta ai contenuti

Array associativi

Negli array indicizzati leggi i valori con numeri come 0 e 1. Negli array associativi usi chiavi testuali.

<?php
$utente = [
"nome" => "Luca",
"eta" => 28,
"email" => "luca@example.com",
];

Qui "nome", "eta" ed "email" sono chiavi.

<?php
$utente = [
"nome" => "Luca",
"eta" => 28,
];
echo $utente["nome"];

Output:

Luca
<?php
$prodotto = [
"nome" => "Quaderno",
"prezzo" => 3.50,
];
$prodotto["prezzo"] = 3.20;

Stai cambiando solo il valore collegato alla chiave "prezzo".

<?php
$prodotto = [
"nome" => "Quaderno",
];
$prodotto["disponibile"] = true;
<?php
$utente = [
"nome" => "Sara",
"eta" => 31,
];
foreach ($utente as $chiave => $valore) {
echo "$chiave: $valore\n";
}

Gli array associativi sono utili per rappresentare profili, prodotti, impostazioni e dati che hanno un nome preciso.

Quando i dati descrivono una stessa cosa, le chiavi rendono il codice piu leggibile.

<?php
$prodotto = [
"nome" => "Penna",
"prezzo" => 1.20,
"disponibile" => true,
];
if ($prodotto["disponibile"]) {
echo $prodotto["nome"] . " costa " . $prodotto["prezzo"] . " euro";
}

Leggendo le chiavi capisci subito che cosa rappresenta ogni valore.

Prima di leggere una chiave che potrebbe mancare, puoi usare isset.

<?php
if (isset($utente["email"])) {
echo $utente["email"];
}

Oppure puoi usare ?? per dare un valore predefinito.

<?php
$email = $utente["email"] ?? "email non disponibile";

Errore comune: usare il nome della chiave senza virgolette

Sezione intitolata “Errore comune: usare il nome della chiave senza virgolette”
<?php
echo $utente[nome];

Scrivi invece:

<?php
echo $utente["nome"];

Le virgolette fanno capire a PHP che nome e una chiave testuale.