Uno dei grandi vantaggi di un linguaggio di scripting come PHP è che si supera il vincolo della tipizzazione forte degli array o vettori che dir si voglia.
Indice dei contenuti
Array
Questo implica un primo fondamentale risultato: in un vettore possiamo inserire tipi eterogenei di dati elementari. Possiamo dichiarare il vettore in due modi distinti, ma valgono le stesse proprietà.
<?php
$vettore = array("pippo", 123, "topolino", 2.12);
echo $vettore[2];
$altrovettore = ["test", 15, -4.1];
Array associativi
L’accesso agli elementi del nostro vettore infatti non sarà solo attraverso un indice numerico, funzionalità che rimane sostanzialmente utilizzabile, ma la posizione di una variabile sarà piuttosto individuato da un identificatore indice di tipo stringa, generando una coppia chiave/valore molto più intuitiva e forte.
<?php
$associativo = [
"nome" => "Mario",
"cognome" => "Rossi",
"sesso" => 'M'
];
echo $associativo["nome"]."\n"; // Mario
echo "$associativo["sesso"]"; // M
Array multidimensionali
Lo studente più attento avrà già notato una similitudine tra una riga di una tabella i cui campi/colonne possono essere individuati tramite le chiavi mnemoniche. Da qui l’ulteriore passettino in avanti: e se voglio crearmi un vettore semplice con dentro più elementi complessi, ovvero un vettore multidimensionale? Nessun limite, possiamo creare una lista complessa con un vettore di base dove in ogni posizione mettiamo un vettore asociativo. Per accederci segue modalità intuitiva in stile accesso a matrice vista in altri linguaggi di programmazione.
<?php
$associativo = [
[
"nome" => "Mario",
"cognome" => "Rossi",
"sesso" => 'M'
],
[
"nome" => "Giuseppe",
"cognome" => "Verdi",
"sesso" => 'M'
],
[
"nome" => "Sandra",
"cognome" => "Bullock",
"sesso" => 'F'
]
]
echo $associativo[1]["cognome"]; //stampa Verdi
Se quello del vettore multidimensionale ad indice numerico è uno degli usi più comuni dei vettori associativi di PHP, esiste anche la variante di vettore associativo di vettori associativi. Vale la pena citarli per usi più spinti. Mediamente per lo studente di scuola superiore basterà comprendere come il risultato di query su database relazionali torni una tabella che in PHP non sarà altro che più righe con indice numerico, dove ogni riga equivale ad un vettore associativo.
$listaprof = [
"informatica" => [
"nome" => "alfredo",
"cognome" => "centinaro",
"annonascita" => 1982,
"sesso" => 'M',
"altezza" => 1.73
],
"sistemi" => [
"nome" => "mario",
"cognome" => "rossi",
"annonascita" => 1977,
"sesso" => 'M',
"altezza" => 1.63
],
"italiano" => [
"nome" => "gina",
"cognome" => "lolobrigida",
"annonascita" => 1960,
"sesso" => 'F',
"altezza" => 1.53
]
];
echo ("Il prof di informatica si chiama ".$listaprof["informatica"]["nome"]);
Non resta che provare qualche applicazione pratica. Ad esempio, costruiamo un vettore associativo multidimensionale e scorriamolo con un ciclo for che preleva i singoli dati per stamparli sotto forma di colonne e righe di una tabella.
Ultima modifica 11 Ottobre 2022