Array PHP: gestione, cicli e operatore ternario


Questo codice PHP mostra come lavorare con gli array (liste di elementi) e le principali strutture di controllo. Analizziamolo passo per passo.

1. Creazione di un array indicizzato

$frutta = [
    "mela",
    "albicocca", 
    "pesca",
    "banana"
];

Qui viene creato un array indicizzato chiamato $frutta che contiene 4 elementi. Gli array in PHP iniziano dall'indice 0, quindi:

  • $frutta[0] = "mela"
  • $frutta[1] = "albicocca"
  • $frutta[2] = "pesca"
  • $frutta[3] = "banana"

2. Aggiunta di un elemento all'array

$frutta[] = "Lampone";

Con questa sintassi aggiungiamo un nuovo elemento alla fine dell'array. Ora $frutta[4] conterrà "Lampone".

3. Visualizzazione dell'array con var_dump()

var_dump($frutta);

La funzione var_dump() è molto utile per debug perché mostra:

  • Il tipo di dato
  • La dimensione dell'array
  • Tutti gli elementi con i loro indici

Nota importante: Come dice il commento, per gli array non si usa echo ma var_dump() o print_r().

4. Struttura condizionale IF-ELSE

if($frutta[0] === "mela"){
    echo "Le mele del Trentino sono buonissime :)";
}else {
    echo "Oggi non è giornata di mele";
}

Questo blocco controlla se il primo elemento dell'array è "mela". L'operatore === verifica sia il valore che il tipo di dato (confronto stretto).

5. Operatore ternario

$eta = 8;
$msg_utente = $eta >= 18 ? "Maggiorenne" : "Minorenne";

L'operatore ternario è una forma compatta dell'if-else:

  • Se $eta >= 18 è vero → $msg_utente = "Maggiorenne"
  • Se è falso → $msg_utente = "Minorenne"

6. Ciclo FOR per creare una lista HTML

$output = "<ol>";
for($i=0; $i < count($frutta); $i++){
    $output .= "<li>$frutta[$i]</li>";
}
$output.="</ol>";

Questo ciclo:

  • Inizializza una lista ordinata HTML (<ol>)
  • Scorre tutti gli elementi dell'array usando l'indice $i
  • Per ogni elemento crea un <li>
  • count($frutta) restituisce il numero di elementi nell'array
  • L'operatore .= concatena (aggiunge) testo alla variabile esistente

7. Ciclo FOREACH (alternativa più semplice)

foreach($frutta as $f){
    $output .= "<li>$f</li>";
}

Il foreach è più elegante per scorrere array:

  • Non serve gestire gli indici manualmente
  • $f assume automaticamente il valore di ogni elemento
  • È meno soggetto a errori

8. Array associativo

$voti = [
    "marco" => 8,
    "stefano" => "Dieci",
    "stefano" => "Tre"  // Questo sovrascrive il valore precedente!
];

Questo è un array associativo dove:

  • Le chiavi sono stringhe ("marco", "stefano")
  • I valori sono associati alle chiavi
  • Attenzione: la chiave "stefano" viene ripetuta, quindi il valore finale sarà "Tre" (l'ultimo assegnato)

Concetti chiave da ricordare

  • Array indicizzati: usano numeri come indici (0, 1, 2...)
  • Array associativi: usano stringhe come chiavi
  • var_dump(): per visualizzare il contenuto completo di variabili complesse
  • Operatore ternario: forma compatta di if-else
  • foreach: il modo più semplice per scorrere array
  • Concatenazione: .= per aggiungere testo a una stringa esistente

<?php
    $frutta = [
        "mela",
        "albicocca",
        "pesca",
        "banana"
    ];

    //echo $frutta[1];

    $frutta[] = "Lampone";
    // Stampa dell'array. Mi raccomando non usare echo! (si usa per le stringhe, numeri ecc...)
    var_dump($frutta);

    if($frutta[0] === "mela"){
        echo "Le mele del Trentino sono buonissime :)";
    }else {
        echo "Oggi non è giornata di mele";
    }

    $eta = 8;

    $msg_utente = $eta >= 18 ? "Maggiorenne" : "Minorenne";
    echo "<br>";
    echo $msg_utente;

    $output = "<ol>";
    for($i=0; $i < count($frutta); $i++){
        $output .= "<li>$frutta[$i]</li>";
    }
    $output.="</ol>";
    echo "<br/>Numero di frutti (".count($frutta).") <br/>";
    echo $output;

    // stessa cosa di prima...ma con il foreach

    $output ="<ol>";
    foreach($frutta as $f){
        $output .= "<li>$f</li>";
    }
    $output.="</ol>";
    echo "<br/>Numero di frutti (".count($frutta).") <br/>";
    echo $output;

    $voti = [
        "marco" => 8,
        "stefano" => "Dieci",
        "stefano" => "Tre"
    ];

    echo $voti["stefano"]; // 10

?>