📘 Array Multidimensionali in PHP
Un array multidimensionale è un array che contiene altri array come elementi. Questo tipo di struttura permette di organizzare i dati in forma di tabelle o strutture complesse, come elenchi di persone, prodotti o voti.
1. Cos'è un Array Multidimensionale
Un array multidimensionale può essere pensato come una "tabella" con righe e colonne, dove ogni riga è a sua volta un array.
<?php
// Esempio di array multidimensionale indicizzato
$studenti = [
["Mario", "Rossi", 8],
["Anna", "Bianchi", 9],
["Luca", "Verdi", 7]
];
// Accesso a un singolo elemento
echo $studenti[0][0]; // Mario
echo $studenti[1][2]; // 9
?>
In questo esempio, ogni sotto-array rappresenta uno studente, con:
- Indice 0: Nome
- Indice 1: Cognome
- Indice 2: Voto
2. Array Multidimensionali Associativi
Ogni riga può anche essere un array associativo, rendendo i dati più leggibili:
<?php
$studenti = [
[
"nome" => "Mario",
"cognome" => "Rossi",
"voto" => 8
],
[
"nome" => "Anna",
"cognome" => "Bianchi",
"voto" => 9
],
[
"nome" => "Luca",
"cognome" => "Verdi",
"voto" => 7
]
];
echo $studenti[1]["nome"]; // Anna
?>
3. Scorrere un Array Multidimensionale
Puoi usare un foreach annidato per visualizzare ogni valore:
<?php
foreach ($studenti as $studente) {
foreach ($studente as $chiave => $valore) {
echo $chiave . ": " . $valore . " <br>";
}
echo "<hr>";
}
?>
4. Visualizzare i dati in forma di tabella
Gli array multidimensionali sono ideali per rappresentare dati in tabelle HTML.
<table border="1" cellpadding="6" cellspacing="0">
<tr><th>Nome</th><th>Cognome</th><th>Voto</th></tr>
<?php
foreach ($studenti as $studente) {
echo "<tr>";
echo "<td>" . $studente["nome"] . "</td>";
echo "<td>" . $studente["cognome"] . "</td>";
echo "<td>" . $studente["voto"] . "</td>";
echo "</tr>";
}
?>
</table>
LABORATORIO
Gestire dati complessi con Array Multidimensionali
In questo laboratorio creerai un registro studenti utilizzando un array multidimensionale associativo. Imparerai a visualizzare le informazioni in una tabella HTML e a calcolare la media dei voti.
- Editor di codice PHP (VS Code, Notepad++, ecc.)
- Server locale (XAMPP, MAMP, Laragon)
- Browser per visualizzare il risultato
1 Creare il registro studenti
Crea un file chiamato array-multidimensionali.php e inserisci il seguente codice:
<?php
$studenti = [
["nome" => "Luca", "cognome" => "Verdi", "voto" => 7],
["nome" => "Anna", "cognome" => "Bianchi", "voto" => 9],
["nome" => "Marco", "cognome" => "Rossi", "voto" => 8],
];
?>
2 Stampare i dati in una tabella HTML
Ora visualizza le informazioni in una tabella:
<table border="1" cellpadding="6" cellspacing="0">
<tr><th>Nome</th><th>Cognome</th><th>Voto</th></tr>
<?php
foreach ($studenti as $studente) {
echo "<tr>";
echo "<td>" . $studente["nome"] . "</td>";
echo "<td>" . $studente["cognome"] . "</td>";
echo "<td>" . $studente["voto"] . "</td>";
echo "</tr>";
}
?>
</table>
3 Calcolare la media dei voti
Aggiungi sotto la tabella un blocco che calcola la media dei voti:
<?php
$somma = 0;
foreach ($studenti as $studente) {
$somma += $studente["voto"];
}
$media = $somma / count($studenti);
echo "<p><b>Media voti:</b> " . number_format($media, 2) . "</p>";
?>
4 Aggiungere nuovi studenti
Puoi aggiungere un nuovo studente come segue:
<?php
$studenti[] = ["nome" => "Giulia", "cognome" => "Neri", "voto" => 10];
?>
Dopo aver aggiunto l'elemento, ricarica la pagina e verifica che compaia anche nella tabella e nel calcolo della media.
5 Test e analisi
- Esegui array-multidimensionali.php nel browser.
- Controlla la tabella generata e la media dei voti.
- Aggiungi altri studenti per osservare come cambia la media.
- Prova a stampare solo i nomi:
echo $studente["nome"];.