Nella quinta parte della guida PHP di base, vediamo come gestire ed usare al meglio gli array php.
[lightgrey_box]
SOMMARIO GUIDA
Parte 2: Funzioni per gestire le stringhe
Parte 4: Guida Cicli IF, ELSE, ISSET, EMPTY
Parte 6: i cicli PHP: Do,While – For – Foreach
[/lightgrey_box]
Che cos’è un array
Possiamo considerare un array come una matrice, cosa significa? al contrario delle variabili che contengono stringhe e cifre, un array può contenere più di una stringa o una cifra identificate da un indice numerico, ecco uno schema pratico:
Array con indice numerico | |||
0 | 1 | 2 | 3 |
valore 1 | valore 2 | valore 3 | valore 4 |
L’array in figura viene creato usando questo codice d’esempio:
array('valore 1','valore 2','valore 3','valore 4');
Utilizzando la funzione array() creiamo appunto un nuovo array o matrice che non conterrà nulla al suo interno, per inserire dei valori nel “contenitore” ci basterà scriverli separati da una virgola come mostrato qua sopra. Ovviamente possiamo scrivere in modo equivalente l’array in questo modo:
$arr = array(); $arr[] = "valore 1"; $arr[] = "valore 2"; $arr[] = "valore 3"; $arr[] = "valore 4";
Usando il codice qua sopra otterremo di fatto lo stesso risultato del codice precedente; Inserendo le parentesi quadre dopo la variabile andremo a inserire un nuovo valore al nostro array che avrà come indice il numero successivo incrementale a quello attualmente presente nell’array. Nel caso in cui non sia ancora stato inserito nessun elemento l’ indice dell’array partirà da 0 (NOTA BENE: non da 1!).
Per sostituire un valore a un indice ci basterà agire come segue:
$arr = array('valore 1','valore 2','valore 3','valore 4'); $arr[3] = "quarto valore"; //ora all'indice 3 troveremo "quarto valore" al posto di "valore 4"
Nel caso volessimo inserire un nuovo indice non ancora esistente nell’array possiamo specificare ” indice = valore ” in questo modo: $arr[4] = “quinto valore”;
Un array può avere indici di tipo letterale (più facili da usare e immediati) come nell’esempio seguente.
Array con indice letterale | ||
nome | cognome | eta |
Mario | Rossi | 40 |
Questo tipo di array è identico a quello precedente, cambia solo il metodo con cui vengono recuperati i valori (cosa che spiegherò tra poco) e la sua creazione, come con gli indici numerali gli indici sono univoci, se ne creiamo uno già esistente quello vecchio verrà sovrascritto, anche in questo caso i metodi per crearli sono 2:
$arr = array( "nome" => "Mario", "cognome" => "Rossi", "eta" => 40 );
In questo modo creiamo collegamento uno a uno tra l’indice scritto prima del simbolo => e il valore dopo, ognuno di questi separati da una virgola, l’indice nome sarà in relazione con il valore Mario, cognome con Rossi e eta con 40.
L’altro metodo per creare questo tipo di array è usare sempre le parentesi quadre ma in questo caso inseriremo una stringa al posto di un numero
$arr = array(); $arr['nome'] = "Mario"; $arr['cognome'] = "Rossi"; $arr['eta'] = "40";
Come per gli array con indice numerico il risultato non cambia dal codice scritto in precedenza.
Recupero valori da un array
Come per una normale variabile per recuperare i valori inseriti dentro un array scriviamo il nome della variabile dentro ad un echo
$arr = array('valore 1','valore 2','valore 3','valore 3'); echo $arr;
In questo caso però otterremo come risultato una scritta array perché non abbiamo detto all’echo a quale valore accedere, questo può essere fatto inserendo l’indice racchiuso tra parentesi quadre dopo la variabile:
$arr = array('valore 1','valore 2','valore 3','valore 3'); echo $arr[0];
Ora l’echo sa che deve accedere al valore con indice 0, quindi restituirà valore 1.
Mentre se l’array dal quale vogliamo recuperare i valori a gli indici di tipo letterale ci basterà sostituire il numero con una stringa che corrisponde all’indice interessato:
$arr = array( "nome" => "Mario", "cognome" => "Rossi", "eta" => 40 ); echo $arr["nome"];
Array multidimensionali
Passiamo a un argomento più complesso ovvero gli array multi-dimensionali. Per una trattazione completa guardate l’esempio qui sotto:
Array multidimensionale | |||
Nomi | Cognomi | eta | |
0 | Mario | Rossi | 40 |
1 | Francesco | Verdi | 29 |
2 | Veronica | Azzurri | 37 |
L’array con indice Nomi contiene un altro array con indice numerali, ad ogni indice corrisponde un nome diverso, per creare questo tipo di array ci basta creare un array dentro uno già esistente.
$arr = array( "nomi" => array("Mario","Francesco","veronica"), "Cognomi" => array("Rossi","Verdi","Azzurri"), "eta" => array(40,29,37) );
Come potete vedere all’indice Nomi corrisponde un altro array con indici di tipo numeri con vari nomi, stessa cosa per cognomi e eta, per recuperare i vari dati dobbiamo accedere prima all’indice dell’array genitore e poi recuperare il dato dell’array figlio.
$arr = array( "nomi" => array("Mario","Francesco","veronica"), "cognomi" => array("Rossi","Verdi","Azzurri"), "eta" => array(40,29,37) ); $nome = $arr['nomi']; $cognome = $arr['cognomi']; $eta = $arr['eta']; echo "Salve signor ".$nome[0]." ".$cognome[0]." lei ha ".$eta[0]." anni<br />"; echo "Salve signor ".$nome[1]." ".$cognome[1]." lei ha ".$eta[1]." anni<br />"; echo "Salve signora ".$nome[2]." ".$cognome[2]." lei ha ".$eta[2]." anni<br />";
Il codice scritto qui sopra stampa a schermo:
- Salve signor Mario Rossi lei ha 40 anni
- Salve signor Francesco Verdi lei ha 29 anni
- Salve signor veronica Azzurri lei ha 37 anni
Per prima cosa abbiamo creato 3 variabili $nome, $cognome e $eta, ognuna di queste punta all’indice dell’array genitore, successivamente abbiamo recuperato i vari dati scrivendo il valore corrispondente al dato da recuperare dopo una di queste variabili.
Gli array possono avere più di 2 dimensioni a seconda delle esigenze, significa che un array figlio può essere a sua volta genitore di un altro array.
Conclusioni
In questo articolo ho cercato di spiegarvi come funzionano e cosa sono gli array, se avete domande su questo argomento commentate qui sotto, grazie per la lettura! Ti è piaciuto questo articolo o ti è stato utile? Condividilo e diffondilo tra i tuoi amici e follower!
Nel prossimo articolo dedicato alla guida php di base affronteremo i cicli for, foreach e while.
Molto utile, grazie Giacomo.
Ciao, mi sto avvicinando al mondo del PHP e trovo le tue guide molto utili.. se non ho capito male quanto appreso finora, però ho trovato un paio di imprecisioni in questo capitolo..
$arr = array(‘valore 1′,’valore 2′,’valore 3′,’valore 4’);
$arr[3] = “quarto valore”; //ora all’indice 3 troveremo “quarto valore” al posto di “valore 3”
secondo me $arr[3] è “valore 4”, non “valore 3” come hai scritto tu..
$arr = array(
“nome” => “Mario”,
“cognome” => “Rossi”,
“eta” => 40
);
echo $arr[“rossi”];
probablimente volevi scrivere echo $arr[“cognome”]; che restituisce “rossi”
Ciao!
sono stati piccoli errori di distrazione, grazie per la segnalazione =)